제출 #1131918

#제출 시각아이디문제언어결과실행 시간메모리
1131918MuhammetRed-blue table (IZhO19_stones)C++17
100 / 100
17 ms2376 KiB
#include <bits/stdc++.h> using namespace std; vector <vector <char>> a; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while(T--){ int n, m; cin >> n >> m; int ans = 0, n1 = n, m1 = m; if(n1 < m1) swap(n1,m1); int y = (n1*m1)-(n1*((m1/2)+1)); ans = (n1 + (y/((n1/2)+1))); if(n >= m){ a.assign(n, vector <char> (m,'+')); vector <int> vis(n,0), v; int x = 0; for(int j = 0; j < m; j++){ int cnt = (n/2 + 1); v.clear(); while(cnt--){ v.push_back(x); // cout << x << " "; x++; x %= n; } // cout << '\n'; bool tr = 0; // cout << (int)v.size() << ' '; for(int i = 0; i < (int)v.size(); i++){ vis[v[i]]++; // cout << i << " "; if(vis[v[i]] > (m-(m/2 + 1))){ tr = 1; break; } } // cout << "\n"; if(tr == 1){ break; } for(int i = 0; i < (int)v.size(); i++){ a[v[i]][j] = '-'; } } } else { a.assign(n, vector <char> (m,'-')); vector <int> vis(m,0), v; int x = 0; for(int j = 0; j < n; j++){ int cnt = (m/2 + 1); v.clear(); while(cnt--){ v.push_back(x); x++; x %= m; } bool tr = 0; for(auto i : v){ vis[i]++; if(vis[i] > (n-(n/2 + 1))){ tr = 1; break; } } if(tr == 1) break; for(auto i : v){ a[j][i] = '+'; } } } cout << ans << '\n'; for(int i = 0; i < n; i++){ for(int j = 0; 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...