# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
672432 | 2022-12-16T05:09:04 Z | Alihan_8 | Red-blue table (IZhO19_stones) | C++17 | 86 ms | 3296 KB |
#include <bits/stdc++.h> // include <ext/pb_ds/assoc_container.hpp> // include <ext/pb_ds/tree_policy.hpp> // using namespace __gnu_pbds; using namespace std; #define all(x) x.begin(), x.end() #define pb push_back // define ordered_set tree<int,null_type,less_equal<int>,rb_tree_tag,tree_order_statistics_node_update> #define mpr make_pair #define ln '\n' void IO(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);} #define int long long void solve(){ int n, m; cin >> n >> m; bool rev = false; if ( n > m ){ swap(n, m); rev = true; } vector <vector<char>> p(n, vector <char> (m, '-')); set <pair<int,int>> st; for ( int i = 0; i < m; i++ ) st.insert({0, i}); vector <int> cnt(m, (n+1)/2-1); for ( int i = 0; i < n; i++ ){ int Mx = m/2+1; while ( Mx and !st.empty() ){ auto it = st.begin(); st.erase(st.begin()); if ( !cnt[it->second] ) continue; cnt[it->second]--; Mx--; p[i][it->second] = '+'; st.insert({it->first+1, it->second}); } } if ( rev ){ vector <vector<char>> P(m, vector <char> (n)); for ( int i = 0; i < n; i++ ){ for ( int j = m-1; j >= 0; j-- ){ if ( p[i][j] == '+' ) P[m-1-j][i] = '-'; else P[m-1-j][i] = '+'; } } swap(n, m); p = P; } int score = 0; for ( int i = 0; i < n; i++ ){ int l = 0, r = 0; for ( auto j: p[i] ){ if ( j == '+' ) l++; else r++; } score += l > r; } for ( int i = 0; i < m; i++ ){ int l = 0, r = 0; for ( int j = 0; j < n; j++ ){ if ( p[j][i] == '+' ) l++; else r++; } score += r > l; } cout << score << ln; for ( auto i: p ){ for ( auto j: i ) cout << j; cout << ln; } } signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int T; cin >> T; while ( T-- ){ solve(); } cout << '\n'; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 340 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 3 ms | 340 KB | Output is correct |
4 | Correct | 5 ms | 340 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 74 ms | 1340 KB | Output is correct |
2 | Correct | 64 ms | 1944 KB | Output is correct |
3 | Correct | 68 ms | 3296 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 86 ms | 1284 KB | Output is correct |
2 | Correct | 56 ms | 1392 KB | Output is correct |
3 | Correct | 51 ms | 1376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 3 ms | 340 KB | Output is correct |
4 | Correct | 5 ms | 340 KB | Output is correct |
5 | Correct | 74 ms | 1340 KB | Output is correct |
6 | Correct | 64 ms | 1944 KB | Output is correct |
7 | Correct | 68 ms | 3296 KB | Output is correct |
8 | Correct | 86 ms | 1284 KB | Output is correct |
9 | Correct | 56 ms | 1392 KB | Output is correct |
10 | Correct | 51 ms | 1376 KB | Output is correct |
11 | Correct | 20 ms | 560 KB | Output is correct |
12 | Correct | 68 ms | 2452 KB | Output is correct |
13 | Correct | 74 ms | 1848 KB | Output is correct |
14 | Correct | 56 ms | 1232 KB | Output is correct |
15 | Correct | 69 ms | 2292 KB | Output is correct |
16 | Correct | 51 ms | 1776 KB | Output is correct |
17 | Correct | 25 ms | 1588 KB | Output is correct |