제출 #1260977

#제출 시각아이디문제언어결과실행 시간메모리
1260977Braabebo10Red-blue table (IZhO19_stones)C++20
17 / 100
2057 ms4816 KiB
#include<bits/stdc++.h> #define ll long long #define nl "\n" #define all(v) v.begin(),v.end() #define baraa ios_base::sync_with_stdio(false);cin.tie(NULL); using namespace std; int main() { baraa ll t; cin >> t; while (t--) { ll n, m; cin >> n >> m; ll best = -1; char g[n][m]; for (ll a = 0; a <= n; a++) { char grid[n][m]; map<pair<char, ll>, vector<ll> > rows, cols; vector<ll> neg[n]; for (ll i = 0; i < n; i++) for (ll j = 0; j < m; j++) grid[i][j] = (i < a and j <= m / 2 ? '+' : '-'); ll b = 0; for (ll j = m - 1; j >= 0; j--) { ll delta = n / 2 + 1; for (ll i = 0; i < n; i++) delta -= (grid[i][j] == '-'); if (delta < 0) { for (ll i = 0; i < abs(delta); i++) neg[i].push_back(j); b++; } else { for (ll i = 0; i < n; i++) { if (delta == 0)break; if (neg[i].size()) { delta--; swap(grid[i][j], grid[i][neg[i].back()]); neg[i].pop_back(); } } } b += (delta == 0); } // cout << a + b << nl; // for (ll i = 0; i < n; i++) { // for (ll j = 0; j < m; j++) // cout << grid[i][j] << ' '; // cout << nl; // } // cout << a + b << nl; if (best < a + b) { best = a + b; memcpy(g, grid, sizeof(grid)); } } if (best == 40) assert(n <= m); cout << best << nl; for (ll i = 0; i < n; i++) { for (ll j = 0; j < m; j++) cout << g[i][j]; cout << nl; } } return 0; }
#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...