Submission #147744

#TimeUsernameProblemLanguageResultExecution timeMemory
147744theboatmanRed-blue table (IZhO19_stones)C++17
100 / 100
77 ms2424 KiB
#include <bits/stdc++.h> #define y1 theboatman #define make_struct(args...) {args} using namespace std; typedef long long ll; const long long INF = 1e18 + 10; const int inf = 1e9 + 10; const int N = 1e6 + 10; void solve1(int n, int m) { vector <vector <char> > ans(n, vector <char> (m, '-')); int res; if (n <= m) { vector <int> used(m); res = m; for(int i = 0; i < n; i++) { vector <pair <int, int> > pos; for(int j = 0; j < m; j++) { if (used[j] < (n - 1) / 2) { pos.push_back(make_pair(used[j], j)); } } if (pos.size() < (m / 2) + 1) { break; } else { sort(pos.begin(), pos.end()); for(int j = 0; j < (m / 2) + 1; j++) { used[pos[j].second]++; ans[i][pos[j].second] = '+'; } } res++; } } else { ans.assign(n, vector <char> (m, '+')); vector <int> used(n); res = n; for(int i = 0; i < m; i++) { vector <pair <int, int> > pos; for(int j = 0; j < n; j++) { if (used[j] < (m - 1) / 2) { pos.push_back(make_pair(used[j], j)); } } if (pos.size() < (n / 2) + 1) { break; } else { sort(pos.begin(), pos.end()); for(int j = 0; j < (n / 2) + 1; j++) { used[pos[j].second]++; ans[pos[j].second][i] = '-'; } } res++; } } cout << res << "\n"; for(auto i : ans) { for(auto j : i) { cout << j; } cout << "\n"; } } void solve() { int n, m; cin >> n >> m; solve1(n, m); } int main() { cin.tie(0); ios::sync_with_stdio(0); int test; cin >> test; while(test--) { solve(); } return 0; } /* */

Compilation message (stderr)

stones.cpp: In function 'void solve1(int, int)':
stones.cpp:30:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (pos.size() < (m / 2) + 1) {
                 ~~~~~~~~~~~^~~~~~~~~~~~~
stones.cpp:58:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (pos.size() < (n / 2) + 1) {
                 ~~~~~~~~~~~^~~~~~~~~~~~~
#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...