제출 #1156566

#제출 시각아이디문제언어결과실행 시간메모리
1156566MuhammadSaramRed-blue table (IZhO19_stones)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define int long long vector<string> sol(int n,int m) { vector<string> v; for (int i=0;i<n/2;i++) { string s(m/2+1,'+'),s1(m/2,'-'); s+=s1; v.push_back(s); } string wh(m,'-'); v.push_back(wh); for (int i=0;i<n/2;i++) { string s(m/2+1,'+'),s1(m/2,'-'); s1+=s; v.push_back(s1); } return v; } bool check(int n,int m) { if (n%2) { int cnt1[m]={}; string ans[n]; for (int i=0;i<n;i++) { if (i<n-2) string s(m,'+'),ans[i]=s; else string s(m,'-'),ans[i]=s; } for (int i=0;i<m;i++) cnt1[i]-=2,cnt1[i]+=n-2; int x=m/2-1; for (int i=0;i<n-2;i++) { for (int j=i*x;j<i*x+x;j++) cnt1[j%m]-=2,ans[i][j%m]='-'; } for (int i=0;i<m;i++) if (cnt1[i]>=0) return 0; cout<<n+m-2<<endl; for (int i=0;i<n;i++) cout<<ans[i]<<endl; return 1; } else if(m%2) { int cnt1[n]={}; string ans[n]; for (int i=0;i<n;i++) { string s(m,'+'); s[m-2]=s[m-1]='-'; ans[i]=s; } for (int i=0;i<n;i++) cnt1[i]-=2,cnt1[i]+=m-2; int x=n/2-1; for (int i=0;i<m-2;i++) { for (int j=i*x;j<i*x+x;j++) cnt1[j%n]-=2,ans[j%n][i]='-'; } for (int i=0;i<n;i++) if (cnt1[i]>=0) return 0; cout<<n+m-2<<endl; for (int i=0;i<n;i++) cout<<ans[i]<<endl; return 1; } return 0; } signed main() { int t; cin>>t; while (t--) { int n,m; cin>>n>>m; if (min(n,m)<=2) { cout<<max(n,m)<<endl; char c='+'; if (min(n,m)==n) c='-'; for (int i=0;i<n;i++) { string s(m,c); cout<<s<<endl; } } else if (n%2 && m%2) { cout<<n+m-2<<endl; vector<string> v=sol(n,m); for (auto i:v) cout<<i<<endl; } else if(check(n,m)) continue; else if (n%2) { cout<<n+m-3<<endl; vector<string> v=sol(n,m-1); for (auto i:v) cout<<i<<'+'<<endl; } else if(m%2) { cout<<n+m-3<<endl; vector<string> v=sol(n-1,m); for (auto i:v) cout<<i<<endl; string s(m,'-'); cout<<s<<endl; } else if(check1(n,m)) continue; else { cout<<n+m-4<<endl; vector<string> v=sol(n-1,m-1); for (auto i:v) cout<<i<<'+'<<endl; string s(m,'-'); cout<<s<<endl; } } return 0; }

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

stones.cpp: In function 'bool check(long long int, long long int)':
stones.cpp:36:56: error: array must be initialized with a brace-enclosed initializer
   36 |                                 string s(m,'+'),ans[i]=s;
      |                                                        ^
stones.cpp:38:56: error: array must be initialized with a brace-enclosed initializer
   38 |                                 string s(m,'-'),ans[i]=s;
      |                                                        ^
stones.cpp: In function 'int main()':
stones.cpp:131:25: error: 'check1' was not declared in this scope; did you mean 'check'?
  131 |                 else if(check1(n,m))
      |                         ^~~~~~
      |                         check