제출 #173282

#제출 시각아이디문제언어결과실행 시간메모리
173282GoldeNRed-blue table (IZhO19_stones)C++17
100 / 100
40 ms2372 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define f first #define s second #define pb push_back #define all(a) a.begin(),a.end() typedef long long ll; typedef long double ld; typedef pair <int,int> pii; typedef pair <ll,ll> pll; typedef vector <ll> vl; typedef vector <int> vi; typedef vector <bool> vb; typedef vector <vector <int> > vvi; typedef vector <vector <ll> > vvl; typedef vector <pair<int,int> > vii; typedef vector <pair<ll,ll> > vll; string itos(int n) {stringstream ss;ss<<n;string s=ss.str();return s;} ll ppow(ll x,ll y,ll mod) { ll res=1; while(y) { if(y&1) res=res*x%mod; y>>=1; x=x*x%mod; } return res; } const int N=1005; char a[N][N]; int cnt[N]; int solve1(int n,int m) { int res=m; for (int i=1;i<=n;++i) { for (int j=1;j<=m;++j) { a[i][j]='-'; cnt[j]=n; } } int last=1; for (int i=1;i<=n;++i) { int cur=last; int need=m/2+1; while (need) { if (cnt[cur] > n/2+1) { cnt[cur]--; a[i][cur]='+'; need--; } cur++; if (cur == m+1) { cur=1; } if (cur == last) break; } if (need == 0) { res++; last=cur; } else break; } return res; } int solve2(int n,int m) { int res=n; for (int i=1;i<=n;++i) { for (int j=1;j<=m;++j) { a[i][j]='+'; } cnt[i]=m; } int last=1; for (int i=1;i<=m;++i) { int cur=last; int need=n/2+1; while (need) { if (cnt[cur] > m/2+1) { cnt[cur]--; a[cur][i]='-'; need--; } cur++; if (cur == n+1) { cur=1; } if (cur == last) break; } if (need == 0) { res++; last=cur; } else break; } return res; } int main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int t; cin >> t; while (t--) { int n,m; cin >> n >> m; if (solve1(n,m) > solve2(n,m)) { cout << solve1(n,m) << "\n"; } else { cout << solve2(n,m) << "\n"; } for (int i=1;i<=n;++i) { for (int j=1;j<=m;++j) { cout << a[i][j]; } 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...