제출 #499875

#제출 시각아이디문제언어결과실행 시간메모리
499875lukameladzeRed-blue table (IZhO19_stones)C++14
0 / 100
63 ms1764 KiB
# include <bits/stdc++.h> #define f first #define s second #define pb push_back using namespace std; const int N = 1005; int t,n,m,a[N][N],ans,rem,cur[N],canrow,val,val1,all; main() { cin>>t; while (t--) { cin>>n>>m; ans = max(n,m); for (int i = 1; i <= n; i++) { all = i*((m+2)/2); canrow = min(n - (n+2)/2, i); for (int j = 0; j < m; j++) { if ((m-j)*canrow >= all) { if (i + (m - j) > ans) { val = i; val1 = j; } ans = max(ans,i + (m - j)); } all -= i; } } cout<<ans<<endl; if (ans == m) { for (int i = 1; i <= n; i++) { for (int j = 1; j <=m ;j++) { cout<<"-"; } cout<<"\n"; } continue; } if (ans == n) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cout<<"+"; } } cout<<"\n"; continue; } for (int i = 1; i <= val; i++) { canrow = min(n-(n+2)/2,i); for (int j = 1; j <= val1; j++) { a[i][j] = 1; } rem = (m+2)/2; vector < pair <int, int > > v; v.clear(); for (int j = 1; j <= m; j++) { v.pb({cur[j],j}); } sort(v.begin(),v.end()); for (int j = 0; j < rem; j++) { a[i][v[j].s] = 1; cur[v[j].s]++; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) {cur[j] = 0; if (a[i][j] == 1) cout<<"+"; else cout<<"-"; } cout<<"\n"; } } }

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

stones.cpp:8:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    8 | main() {
      | ^~~~
#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...