Submission #236502

#TimeUsernameProblemLanguageResultExecution timeMemory
236502kshitij_sodaniRed-blue table (IZhO19_stones)C++17
58 / 100
2084 ms3192 KiB
#include <bits/stdc++.h> using namespace std; typedef int64_t llo; #define mp make_pair #define pb push_back #define a first #define b second int n,m,t; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>t; while(t--){ cin>>n>>m; if(n==1){ cout<<m<<endl; for(int j=0;j<m;j++){ cout<<"-"; } cout<<endl; } else if(m==1){ cout<<n<<endl; for(int j=0;j<n;j++){ cout<<"+"<<endl; } cout<<endl; } else if(n==2){ cout<<m<<endl; for(int i=0;i<m;i++){ cout<<"-"; } cout<<endl; for(int i=0;i<m;i++){ cout<<"-"; } cout<<endl; } else if(m==2){ cout<<n<<endl; for(int i=0;i<n;i++){ cout<<"++"<<endl; } } else if(n==3){ cout<<(m+1)<<endl; for(int i=0;i<m;i++){ cout<<"-"; } cout<<endl; for(int i=0;i<m;i++){ cout<<"+"; } cout<<endl; for(int i=0;i<m;i++){ cout<<"-"; } cout<<endl; } else if(m==3){ cout<<(n+1)<<endl; for(int i=0;i<n;i++){ cout<<"+-+"<<endl; } } else if(n==4){ cout<<m+1<<endl; for(int j=0;j<3;j++){ for(int i=0;i<m;i++){ cout<<"-"; } cout<<endl; } for(int i=0;i<m;i++){ cout<<"+"; } cout<<endl; } else if(m==4){ cout<<n+1<<endl; for(int i=0;i<n;i++){ cout<<"+++-"<<endl; } } /*else if(m%2==1 and n%2==1){ if(m+3+(n-5)/2>n+3+(m-5)/2){ cout<<(m+3+(n-5)/2)<<endl; int it[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ it[i][j]=0; } } for(int i=0;i<(m+2)/2;i++){ it[0][i]=1; } for(int i=m-(m+2)/2;i<m;i++){ it[1][i]=1; } for(int j=0;j<m;j++){ if(it[0][j]!=1 or it[1][j]!=1){ it[2][j]=1; } } for(int i=5;i<n;i+=2){ for(int j=0;j<m;j++){ it[i][j]=1; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(it[i][j]==1){ cout<<"+"; } else{ cout<<"-"; } } cout<<endl; } } else{ cout<<(n+3+(m-5)/2)<<endl; int it[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ it[i][j]=0; } } for(int i=0;i<(n+2)/2;i++){ it[i][0]=1; } for(int i=n-(n+2)/2;i<n;i++){ it[i][1]=1; } for(int j=0;j<n;j++){ if(it[j][0]!=1 or it[j][1]!=1){ it[j][2]=1; } } for(int j=5;j<m;j+=2){ for(int i=0;i<n;i++){ it[i][j]=1; // cout<<i<<","<<j<<endl; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(it[i][j]==1){ cout<<"-"; } else{ cout<<"+"; } } cout<<endl; } } }*/ else if(n==5){ cout<<(m+3+(n-5)/2)<<endl; int it[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ it[i][j]=0; } } for(int i=0;i<(m+2)/2;i++){ it[0][i]=1; } for(int i=m-(m+2)/2;i<m;i++){ it[1][i]=1; } for(int j=0;j<m;j++){ if(it[0][j]!=1 or it[1][j]!=1){ it[2][j]=1; } } for(int i=5;i<n;i+=2){ for(int j=0;j<m;j++){ it[i][j]=1; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(it[i][j]==1){ cout<<"+"; } else{ cout<<"-"; } } cout<<endl; } } else if(m==5){ cout<<(n+3)<<endl; int it[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ it[i][j]=0; } } for(int i=0;i<(n+2)/2;i++){ it[i][0]=1; } for(int i=n-(n+2)/2;i<n;i++){ it[i][1]=1; } for(int j=0;j<n;j++){ if(it[j][0]!=1 or it[j][1]!=1){ it[j][2]=1; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(it[i][j]==1){ cout<<"-"; } else{ cout<<"+"; } } cout<<endl; } } else if(m==n){ if(m==6){ cout<<9<<endl; cout<<"++++--"<<endl; cout<<"--++++"<<endl; cout<<"++--++"<<endl; cout<<"------"<<endl; cout<<"------"<<endl; cout<<"------"<<endl; continue; } int it[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ it[i][j]=0; } } if(m%2==1 and n%2==1){ cout<<(4*(m/2))<<endl; for(int i=0;i<(m+1)/2;i++){ for(int j=0;j<(n)/2;j++){ it[j][i]=1; } } for(int i=0;i<(m+1)/2;i++){ for(int j=0;j<(n)/2;j++){ it[n-j-1][m-i-1]=1; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(it[i][j]==1){ cout<<"+"; } else{ cout<<"-"; } } cout<<endl; } } else{ cout<<(4*(n/2-1))<<endl; for(int i=0;i<(m+2)/2;i++){ for(int j=0;j<(n-1)/2;j++){ it[j][i]=1; } } for(int i=0;i<(m+2)/2;i++){ for(int j=0;j<(n-1)/2;j++){ it[n-j-1][m-i-1]=1; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(it[i][j]==1){ cout<<"+"; } else{ cout<<"-"; } } cout<<endl; } } } else{ int k=(n+2)/2; int l=(m+2)/2; int ma=-1; pair<int,int> aa={-1,-1}; int bb=m; for(int i=0;i<=n;i++){ while(i*l+k*bb>(n*m)){ bb-=1; } if(i+bb>ma){ ma=i+bb; aa={i,bb}; } } if(aa.b<0){ while(true){ continue; } } int it[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ it[i][j]=0; } } int le=m-aa.b; /*if(ma==34){ return 0; }*/ cout<<ma<<endl; deque<int> freq[1001]; int ind=0; for(int i=le;i<m;i++){ freq[0].pb(i); } //(m-le) //cout<<aa.a<<","<<aa.b<<endl; int vis[1001]; for(int i=0;i<1001;i++){ vis[i]=0; } for(int i=0;i<aa.a;i++){ vector<int> kk; for(int j=0;j<l;j++){ if(j<le){ it[i][j]=1; continue; } if(freq[ind].size()==0){ ind+=1; } if(ind>=k or freq[ind].size()==0){ while(true){ continue; } } it[i][freq[ind].back()]=1; // cout<<i<<":"<<freq[ind].back()<<endl; int xx=freq[ind].back(); kk.pb(xx); if(vis[xx]==1){ while(true){ continue; } } vis[xx]=1; freq[ind+1].push_front(xx); freq[ind].pop_back(); } for(auto j:kk){ vis[j]=0; } } int coo=0; for(int i=0;i<m;i++){ int co=0; for(int j=0;j<n;j++){ if(it[j][i]==1){ co+=1; } } if(co>=k){ coo+=1; } } if(coo!=aa.b){ while(true){ continue; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(it[i][j]==1){ cout<<"+"; } else{ cout<<"-"; } } cout<<endl; } } /*int it[n][m]; if(n>m){ int l=0; for(int i=0;i<n;i++){ for(int j=l;j<l+(m+2)/2;j++){ it[i][j%m]=1; } l=l+(m+2)/2; l%=m; } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(it[i][j]){ cout<<"+"; } else{ cout<<"-"; } } cout<<endl; } } else{ for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(i%2==0){ cout<<"-"; } else{ cout<<"+"; } } cout<<endl; } }*/ } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...