# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
335821 | 2020-12-14T04:06:33 Z | beksultan04 | Red-blue table (IZhO19_stones) | C++14 | 48 ms | 2148 KB |
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define OK puts("OK"); #define fr first #define sc second #define ret return #define scan1(a) scanf("%lld",&a); #define scan2(a,b) scanf("%lld %lld",&a, &b); #define scan3(a,b,c) scanf("%lld %lld %lld",&a,&b,&c); #define all(s) s.begin(),s.end() #define pb push_back #define endi puts(""); const int N = 1e6+12,INF=1e9+7; int m1[N],p[N]; char q[1001][1001]; main(){ int t; scan1(t) while (t--){ int i,j,n,m,ans=0; scan2(n,m) if (min(n,m) <= 4){ if (n <= m){ for (i=0;i<n;++i){ for (j=0;j<m;++j){ if (i < n/2+1){ q[i][j]='-'; m1[j]++; } else { q[i][j]='+'; p[i]++; } } } } else { for (i=0;i<n;++i){ for (j=0;j<m;++j){ if (j < m/2+1){ q[i][j]='+'; p[i]++; } else { m1[j]++; q[i][j]='-'; } } } } ans = max(n,m); ans += min(n-1,m-1)/2; cout <<ans<<"\n"; for (i=0;i<n;++i){ for (j=0;j<m;++j){ cout <<q[i][j]; } endi; } } else if (min(n,m)<=6){ if (n <= m){ int cnt=0; for (i=0;i<n;++i){ for (j=0;j<m;++j){ q[i][j]='-'; } } i=0; j=0; int mod = m/2+1; while (i < (n-1)/2+1){ q[i][j]='+'; cnt++; j++; j%=m; if (cnt%mod==0) i++; cnt%=mod; } ans = m; ans+=(n-1)/2+1; cout <<ans<<"\n"; for (i=0;i<n;++i){ for (j=0;j<m;++j){ cout <<q[i][j]; } endi; } } else { int cnt=0; for (i=0;i<n;++i){ for (j=0;j<m;++j){ q[i][j]='+'; } } i=0; j=0; int mod = n/2+1; while (j < (m-1)/2+1){ q[i][j]='-'; cnt++; i++; i%=n; if (cnt%mod==0) j++; cnt%=mod; } ans = n; ans+=(m-1)/2+1; cout <<ans<<"\n"; for (i=0;i<n;++i){ for (j=0;j<m;++j){ cout <<q[i][j]; } endi; } } } else { if (n <= m){ int cnt=0; for (i=0;i<n;++i){ for (j=0;j<m;++j){ q[i][j]='-'; } } i=0; j=0; int mod = m/2+1; ans = m; while (i<n){ if (p[j] >= n/2){ break; } q[i][j]='+'; p[j]++; cnt++; j++; j%=m; if (cnt%mod==0){ i++; ans++; } cnt%=mod; } } else { int cnt=0; for (i=0;i<n;++i){ for (j=0;j<m;++j){ q[i][j]='+'; } } i=0; j=0; int mod = n/2+1; ans = n; while (1){ if (p[i] >= m/2){ break; } q[i][j]='-'; p[i]++; cnt++; i++; i%=n; if (cnt-mod==0){ j++; ans++; cnt=0; } } } cout <<ans<<"\n"; for (i=0;i<n;++i){ p[i]=0; for (j=0;j<m;++j){ p[j]=0; cout <<q[i][j]; } endi; } } for (i=0;i<n;++i)p[i]=0; for (i=0;i<m;++i)p[i]=0; } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 364 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 364 KB | Output is correct |
3 | Correct | 1 ms | 364 KB | Output is correct |
4 | Correct | 3 ms | 492 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 48 ms | 1612 KB | Output is correct |
2 | Correct | 44 ms | 2028 KB | Output is correct |
3 | Correct | 39 ms | 2148 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 48 ms | 1516 KB | in the table A+B is not equal to 46 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 364 KB | Output is correct |
3 | Correct | 1 ms | 364 KB | Output is correct |
4 | Correct | 3 ms | 492 KB | Output is correct |
5 | Correct | 48 ms | 1612 KB | Output is correct |
6 | Correct | 44 ms | 2028 KB | Output is correct |
7 | Correct | 39 ms | 2148 KB | Output is correct |
8 | Incorrect | 48 ms | 1516 KB | in the table A+B is not equal to 46 |
9 | Halted | 0 ms | 0 KB | - |