提交时间:2024-04-29 10:50:32
运行 ID: 28770
#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}; H2[1]={'I',1,1,1};H2[2]={'I',1,5,6};H2[3]={'I',1,11,6};H2[4]={'I',1,14,5}; H2[5]={'I',1,15,6};H2[6]={'I',1,23,6};H2[7]={'O',0,1,2};H2[8]={'O',0,4,4}; H2[9]={'O',0,14,1};H2[10]={'O',0,16,2};H2[11]={'O',0,20,4};H2[12]={'O',0,24,4}; H2[13]={'T',1,5,1};H2[14]={'T',0,8,4};H2[15]={'T',2,10,4};H2[16]={'T',3,17,3}; H2[17]={'T',1,23,1};H2[18]={'T',1,26,1};H2[19]={'Z',1,2,3};H2[20]={'Z',1,7,1}; H2[21]={'Z',1,11,3};H2[22]={'Z',1,12,4};H2[23]={'Z',0,20,1};H2[24]={'Z',1,24,2}; H2[25]={'S',1,2,5};H2[26]={'S',0,7,3};H2[27]={'S',1,14,3};H2[28]={'S',1,18,5}; H2[29]={'S',1,21,1};H2[30]={'S',0,27,2};H2[31]={'J',2,1,4};H2[32]={'J',1,10,1}; H2[33]={'J',3,11,1};H2[34]={'J',2,19,1};H2[35]={'J',0,22,3};H2[36]={'J',2,26,3}; H2[37]={'L',1,3,2};H2[38]={'L',2,6,3};H2[39]={'L',3,9,2};H2[40]={'L',1,16,1}; H2[41]={'L',0,21,4};H2[42]={'L',0,27,4}; W2[1]={'I',0,1,5};W2[2]={'I',0,1,11};W2[3]={'I',0,1,15};W2[4]={'I',0,1,23}; W2[5]={'I',0,2,14};W2[6]={'I',0,6,1};W2[7]={'O',0,2,4};W2[8]={'O',0,2,20}; W2[9]={'O',0,2,24};W2[10]={'O',0,4,1};W2[11]={'O',0,4,16};W2[12]={'O',0,5,14}; W2[13]={'Z',0,2,12};W2[14]={'Z',0,3,2};W2[15]={'Z',0,3,11};W2[16]={'Z',1,4,20}; W2[17]={'Z',0,4,24};W2[18]={'Z',0,5,7};W2[19]={'S',0,1,2};W2[20]={'S',0,1,18}; W2[21]={'S',1,2,7};W2[22]={'S',0,3,14};W2[23]={'S',1,3,27};W2[24]={'S',0,5,21}; W2[25]={'J',1,1,1};W2[26]={'J',3,2,22};W2[27]={'J',1,2,26};W2[28]={'J',1,4,19}; W2[29]={'J',0,5,10};W2[30]={'J',2,5,11};W2[31]={'L',3,1,21};W2[32]={'L',3,1,27}; W2[33]={'L',1,2,6};W2[34]={'L',0,4,3};W2[35]={'L',2,4,9};W2[36]={'L',0,5,16}; W2[37]={'T',3,1,8};W2[38]={'T',1,1,10};W2[39]={'T',2,3,17};W2[40]={'T',0,5,5}; W2[41]={'T',0,5,23};W2[42]={'T',0,5,26}; }void init2(){ H3[1]={'I',1,1,3}; H3[2]={'I',1,28,1}; H3[3]={'I',1,32,1}; H3[4]={'I',1,36,1}; H3[5]={'I',1,48,3}; H3[6]={'I',1,52,3}; H3[7]={'O',0,1,1}; H3[8]={'O',0,3,1}; H3[9]={'O',0,6,1}; H3[10]={'O',0,23,1}; H3[11]={'O',0,42,1}; H3[12]={'O',0,46,2}; H3[13]={'Z',1,10,1}; H3[14]={'Z',1,14,1}; H3[15]={'Z',1,18,1}; H3[16]={'Z',1,49,1}; H3[17]={'Z',1,51,1}; H3[18]={'Z',1,53,1}; H3[19]={'S',1,27,2}; H3[20]={'S',1,29,2}; H3[21]={'S',1,31,2}; H3[22]={'S',1,33,2}; H3[23]={'S',1,35,2}; H3[24]={'S',1,37,2}; H3[25]={'J',2,5,1}; H3[26]={'J',3,10,2}; H3[27]={'J',3,14,2}; H3[28]={'J',3,18,2}; H3[29]={'J',1,25,1}; H3[30]={'J',2,41,1}; H3[31]={'L',0,7,1}; H3[32]={'L',2,9,1}; H3[33]={'L',2,13,1}; H3[34]={'L',2,17,1}; H3[35]={'L',2,21,1}; H3[36]={'L',3,22,2}; H3[37]={'T',3,25,2}; H3[38]={'T',0,39,1}; H3[39]={'T',3,43,2}; H3[40]={'T',1,44,1}; H3[41]={'T',1,47,1}; H3[42]={'T',0,55,1}; }void init3(){ } 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 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 printh2(int dx,int dy){ for(int i=1;i<=42;i++) printf("%c%d %d %d\n",H2[i].op,H2[i].a,H2[i].x+dx,H2[i].y+dy); }void printw2(int dx,int dy){ for(int i=1;i<=42;i++) printf("%c%d %d %d\n",W2[i].op,W2[i].a,W2[i].x+dx,W2[i].y+dy); }void printh3(int dx,int dy){ for(int i=1;i<=42;i++) printf("%c%d %d %d\n",H3[i].op,H3[i].a,H3[i].x+dx,H3[i].y+dy); }// void printw3(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 printh4(int dx,int dy){ for(int i=1;i<=42;i++) printf("%c%d %d %d\n",H2[i].op,H2[i].a,H2[i].x+dx,H2[i].y+dy); }void printw4(int dx,int dy){ for(int i=1;i<=42;i++) printf("%c%d %d %d\n",W2[i].op,W2[i].a,W2[i].x+dx,W2[i].y+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{ if(n%28==0&&m%2==0){ if(m==2) cout<<"No"<<endl; else{ cout<<"Yes"<<endl; int c4=0,c6=0; c6++; c4=(m-6)/4; for(int i=0;i<n;i+=28){ int o=0; for(int j=1;j<=c6;j++){ printh2(i,o);o+=6; }for(int j=1;j<=c4;j++){ printh1(i,o);printh1(i+14,o);o+=4; } } } }else if(n%2==0&&m%28==0){ if(n==2) cout<<"No"<<endl; else{ cout<<"Yes"<<endl; int c4=0,c6=0; c6++; c4=(n-6)/4; for(int i=0;i<m;i+=28){ int o=0; for(int j=1;j<=c6;j++){ printw2(o,i);o+=6; }for(int j=1;j<=c4;j++){ printw1(o,i);printw1(o,i+14);o+=4; } } } } else{ if(n%56==0&&m>=3){ int c3=0,c4=0,c5=0; if(m%3==0) c3=m/3; else if(m%3==1) c4=1,c3=(m-4)/3; else c5=1,c3=(m-5)/3; for(int i=0;i<n;i+=56){ int o=0; for(int j=1;j<=c3;j++){ printh3(i,o);o+=3; }for(int j=1;j<=c4;j++){ printh1(i,o);printh1(i+14,o); printh1(i+28,o); printh1(i+42,o);o+=4; }for(int j=1;j<=c5;j++){ printh4(i,o);o+=5; } } }else if(n>=3&&m%56==0){ int c3=0,c4=0,c5=0; if(n%3==0) c3=n/3; else if(n%3==1) c4=1,c3=(n-4)/3; else c5=1,c3=(n-5)/3; for(int i=0;i<m;i+=56){ int o=0; for(int j=1;j<=c3;j++){ printw3(o,i);o+=3; }for(int j=1;j<=c4;j++){ printw1(o,i);printw1(o,i+14); printw1(o,i+28); printw1(o,i+42);o+=4; }for(int j=1;j<=c5;j++){ printw4(o,i);o+=5; } } } else cout<<"No"<<endl; } } } } void slv(){ init();init2();//init3(); 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; }