제출 #340814

#제출 시각아이디문제언어결과실행 시간메모리
340814David_MRed-blue table (IZhO19_stones)C++14
54 / 100
28 ms3308 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back #define F first #define S second using namespace std; const ll N=1000006; int n, m, q, o, u, e, l, M; string x, y, a[1010]; int main(){ios_base::sync_with_stdio(false), cin.tie(0); cin>>q; for (int i=0; i<1001; i++)for (int j=0; j<1001; j++)a[i]+='-'; while(q--){x="";o=u=0; cin>>n>>m; if(n==1){cout<<m<<endl;while(m--)cout<<'-';cout<<'\n';continue;} if(m==1){cout<<n<<endl;while(n--)cout<<"+\n";continue;} if(n==2){cout<<m<<endl;M=m;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'-';cout<<'\n';continue;} if(m==2){cout<<n<<endl;while(n--)cout<<"++\n";continue;} if(n==3){cout<<m+1<<endl;M=m;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'+';cout<<'\n';continue;} if(m==3){cout<<n+1<<endl;while(n--)cout<<"++-\n";continue;} if(n==4){cout<<m+1<<endl;M=m;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'+';cout<<'\n';continue;} if(m==4){cout<<n+1<<endl;while(n--)cout<<"+++-\n";continue;} if(n%2==1&&m%2==1){ if(n==1){cout<<m<<endl;while(m--)cout<<'-';cout<<'\n';continue;} if(m==1){cout<<n<<endl;while(n--)cout<<"+\n";continue;} cout<<n+m-2<<'\n'; for (int i=1; i<=m/2; i++)x+='-'; for (int i=1; i<=m/2+1; i++)x+='+'; for (int i=1; i<=n/2; i++)cout<<x<<'\n'; for (int i=0; i<m-1; i++)x[i]='-'; x[m-1]='+'; cout<<x<<'\n'; x=""; for (int i=1; i<=m/2; i++)x+='+'; for (int i=1; i<=m/2; i++)x+='-'; x+='+'; for (int i=1; i<=n/2; i++)cout<<x<<'\n'; continue; } if(n%2==0&&m%2==0){if(n<m)n--,o=1; else m--,u=1;} if(n%2==1){e=n/2; for(int i=0; i<n; i++)for(int j=0; j<m; j++)a[i][j]='-'; if(m+4-2*n>=0){l=n-2; for (int i=0; i<m; i++)for (int j=i; j<i+e; j++)a[min(j%l, n-1)][i]='+';} else{ for (int i=0; i<n/2; i++)for (int j=0; j<m/2-1; j++)a[i][j]='+'; for (int i=n/2+1; i<n; i++)for (int j=m/2-1; j<m-2; j++)a[i][j]='+'; for (int i=0; i<n; i++)a[i][m-1]='+'; for (int i=0; i<n; i++)a[i][m-2]='+'; l=n-3; } }else{e=m/2; for(int i=0; i<n; i++)for(int j=0; j<m; j++)a[i][j]='+'; if(n+4-2*m>=0){l=m-2;for (int i=0; i<n; i++)for (int j=i; j<i+e; j++)a[i][min(j%l, m-1)]='-';} else{ for (int i=0; i<m/2; i++)for (int j=0; j<n/2; j++)a[j][i]='-'; for (int i=m/2+1; i<m; i++)for (int j=n/2-1; j<n; j++)a[j][i]='-'; for (int i=0; i<m; i++)a[n-1][i]='-'; l=n-3; } } cout<<n*(m%2)+m*(n%2)+l<<endl; for(int i=0; i<n; i++){for(int j=0; j<m; j++)cout<<a[i][j];if(u)cout<<'+';cout<<'\n';} if(o)while(m--)cout<<'-';cout<<'\n'; } }

컴파일 시 표준 에러 (stderr) 메시지

stones.cpp: In function 'int main()':
stones.cpp:35:4: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   35 |    for (int i=0; i<m-1; i++)x[i]='-'; x[m-1]='+';
      |    ^~~
stones.cpp:35:39: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   35 |    for (int i=0; i<m-1; i++)x[i]='-'; x[m-1]='+';
      |                                       ^
stones.cpp:70:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   70 |   if(o)while(m--)cout<<'-';cout<<'\n';
      |   ^~
stones.cpp:70:28: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   70 |   if(o)while(m--)cout<<'-';cout<<'\n';
      |                            ^~~~
#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...