提交时间:2024-04-29 08:43:46
运行 ID: 28743
#include<bits/stdc++.h> using namespace std; char mp[20][20]; int n,m; struct nd{ char op; int a,x,y; }H[20],W[20],H1[20],W1[20],H2[60],W2[60],H3[60],W3[60],H4[100],W4[100]; void init(){ H[1]={'I',0,1,1};H[2]={'S',0,1,4};H[3]={'Z',1,1,6};H[4]={'J',3,1,7}; H[5]={'T',1,2,1};H[6]={'Z',0,2,2};H[7]={'S',1,3,5};H[8]={'L',2,4,2}; H[9]={'O',0,4,7};H[10]={'T',1,5,1};H[11]={'O',0,5,3};H[12]={'J',0,5,5}; H[13]={'L',0,6,6};H[14]={'I',0,7,2}; W[1]={'J',2,1,1};W[2]={'O',0,1,4};W[3]={'L',3,1,6};W[4]={'Z',0,2,1}; W[5]={'J',3,2,5};W[6]={'S',1,3,1};W[7]={'S',0,3,3};W[8]={'I',1,4,7}; W[9]={'I',1,5,1};W[10]={'Z',1,5,2};W[11]={'L',1,5,4};W[12]={'O',0,5,5}; W[13]={'T',0,7,2};W[14]={'T',0,7,5}; H1[1]={'I',1,1,1};H1[2]={'J',2,1,2};H1[3]={'O',0,2,2};H1[4]={'Z',1,3,3}; H1[5]={'T',3,4,1};H1[6]={'Z',1,5,3};H1[7]={'S',1,6,1};H1[8]={'T',3,7,3}; H1[9]={'J',0,8,1};H1[10]={'O',0,10,3};H1[11]={'L',3,10,1};H1[12]={'I',1,11,1}; H1[13]={'S',0,12,2};H1[14]={'L',0,13,2}; W1[1]={'I',0,1,1}; W1[2]={'L',0,1,3}; W1[3]={'J',1,1,6}; W1[4]={'S',0,1,7}; W1[5]={'T',0,1,9}; W1[6]={'I',0,1,11}; W1[7]={'L',1,2,1}; W1[8]={'S',1,2,2}; W1[9]={'O',0,3,4}; W1[10]={'T',0,3,6}; W1[11]={'Z',0,3,8}; W1[12]={'Z',0,3,10}; W1[13]={'O',0,2,12}; W1[14]={'J',3,2,13}; } void printh(int dx,int dy){ for(int i=1;i<=14;i++) printf("%c%d %d %d\n",H[i].op,H[i].a,H[i].x+dx,H[i].y+dy); }void printw(int dx,int dy){ for(int i=1;i<=14;i++) printf("%c%d %d %d\n",W[i].op,W[i].a,W[i].x+dx,W[i].y+dy); } void printh1(int dx,int dy){ for(int i=1;i<=14;i++) printf("%c%d %d %d\n",H1[i].op,H1[i].a,H1[i].x+dx,H1[i].y+dy); }void printh2(int dx,int dy){ printf("I0 %d %d\n",1+dx,1+dy); printf("I0 %d %d\n",2+dx,1+dy); printf("O0 %d %d\n",3+dx,1+dy); printf("O0 %d %d\n",3+dx,3+dy); printf("L2 %d %d\n",5+dx,1+dy); printf("L0 %d %d\n",5+dx,2+dy); printf("Z0 %d %d\n",7+dx,1+dy); printf("L3 %d %d\n",7+dx,3+dy); printf("S1 %d %d\n",8+dx,1+dy); printf("S1 %d %d\n",9+dx,3+dy); printf("T1 %d %d\n",10+dx,1+dy); printf("Z1 %d %d\n",11+dx,2+dy); printf("T3 %d %d\n",12+dx,3+dy); printf("J0 %d %d\n",13+dx,1+dy); }void printw1(int dx,int dy){ for(int i=1;i<=14;i++) printf("%c%d %d %d\n",W1[i].op,W1[i].a,W1[i].x+dx,W1[i].y+dy); }void printw2(int dx,int dy){ printf("I1 %d %d\n",1+dx,1+dy); printf("I1 %d %d\n",1+dx,2+dy); printf("O0 %d %d\n",1+dx,3+dy); printf("O0 %d %d\n",3+dx,3+dy); printf("L3 %d %d\n",1+dx,5+dy); printf("L1 %d %d\n",2+dx,5+dy); printf("L2 %d %d\n",1+dx,7+dy); printf("S0 %d %d\n",1+dx,9+dy); printf("T2 %d %d\n",1+dx,12+dy); printf("Z0 %d %d\n",2+dx,11+dy); printf("Z1 %d %d\n",2+dx,7+dy); printf("J3 %d %d\n",2+dx,13+dy); printf("S0 %d %d\n",3+dx,8+dy); printf("T0 %d %d\n",3+dx,10+dy); } void slv1(){ if(n%7==0&&m%8==0){ cout<<"Yes"<<endl; for(int i=0;i<n;i+=7){ for(int j=0;j<m;j+=8){ printh(i,j); } } }else if(m%7==0&&n%8==0){ cout<<"Yes"<<endl; for(int i=0;i<n;i+=8){ for(int j=0;j<m;j+=7){ printw(i,j); } } }else { if(n%14==0&&m%4==0){ cout<<"Yes"<<endl; for(int i=0;i<n;i+=14){ for(int j=0;j<m;j+=4){ printh1(i,j); } } }else if(m%14==0&&n%4==0){cout<<"Yes"<<endl; for(int i=0;i<n;i+=4){ for(int j=0;j<m;j+=14){ printw1(i,j); } } } else cout<<"No"<<endl; } } void slv(){ init(); cin>>n>>m; if(n*m%28!=0) cout<<"No"<<endl; else{ int blo=n*m/4; if(blo/7%2!=0) cout<<"No"<<endl; else{ slv1(); } } } int main(){ slv(); return 0; }