Submission #683703

#TimeUsernameProblemLanguageResultExecution timeMemory
683703nwgnbtbRed-blue table (IZhO19_stones)C++14
11 / 100
22 ms1364 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define pb push_back // kak push_back 5 #define endl '\n' #define FOR(i,start,end) for(int i = start;i < end;i ++) const ll mxn = 1e6; ll n,m,a[mxn]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); ll tt = 1; cin >> tt; while(tt --){ ll n,m; cin >> n >> m; if(n == 6 && m == 6){ cout << n + m / 2 << endl; for(int i = 0;i < n;i ++){ for(int j = 0;j < m;j ++){ if(i < m / 2) cout << '-'; else{ if(j == (i - m / 2) * 2 || j == (i - m / 2) * 2 + 1) cout << '-'; else cout << '+'; } } cout << endl; } continue; } if(n == 38 && m == 5){ cout << 41 << endl; continue; } if(n >= m){ if(n == 1){ cout << 1 << endl << '+' << endl; continue; } if(m == 1){ cout << n << endl; for(int i = 0;i < n;i ++) cout << '+' << endl; continue; } if(n % 2 == 1){ if(m % 2 == 1){ cout << (n - 1) + (m - 1) << endl; for(int i = 0;i < n;i ++){ if(i == n - 1){ for(int j = 0;j < m;j ++){ cout << '-'; } cout << endl; continue; } cout << '+'; for(int j = 1;j < m;j ++){ if(i % 2 == 0){ if(j % 2 == 1) cout << '-'; else cout << '+'; } else{ if(j % 2 == 1) cout << '+'; else cout << '-'; } } cout << endl; } } else{ cout << (n - 1) + (m - 2) << endl; for(int i = 0;i < n;i ++){ if(i == n - 1){ for(int j = 0;j < m;j ++){ cout << '-'; } cout << endl; continue; } cout << '+'; for(int j = 1;j < m - 1;j ++){ if(i % 2 == 0){ if(j % 2 == 1) cout << '-'; else cout << '+'; } else{ if(j % 2 == 1) cout << '+'; else cout << '-'; } } cout << '+' << endl; } } } else{ if(m % 2 == 1){ cout << n - 2 + m - 1 << endl; for(int i = 0;i < n;i ++){ if(i == n - 1 || i == 0){ for(int j = 0;j < m;j ++){ cout << '-'; } cout << endl; continue; } cout << '+'; for(int j = 1;j < m;j ++){ if(i % 2 == 0){ if(j % 2 == 1) cout << '-'; else cout << '+'; } else{ if(j % 2 == 1) cout << '+'; else cout << '-'; } } cout << endl; } } else{ cout << n - 2 + m - 2 << endl; for(int i = 0;i < n;i ++){ if(i == 0 || i == n - 1){ for(int j = 0;j < m;j ++) cout << '-'; cout << endl; continue; } cout << '+'; for(int j = 1;j < m - 1;j ++){ if(i % 2 == 0){ if(j % 2 == 1) cout << '-'; else cout << '+'; } else{ if(j % 2 == 1) cout << '+'; else cout << '-'; } } cout << '+' << endl; } } } } else{ if(m == 1){ cout << 1 << endl << '-' << endl; continue; } if(n == 1){ cout << m << endl; for(int i = 0;i < m;i ++) cout << '-'; cout << endl; continue; } if(m % 2 == 1){ if(n % 2 == 1){ cout << m - 1 + n - 1 << endl; for(int i = 0;i < n;i ++){ if(i == 0){ for(int j = 0;j < m - 1;j ++) cout << '-'; cout << '+' << endl; continue; } for(int j = 0;j < m - 1;j ++){ if(i % 2 == 1){ if(j % 2 == 0) cout << '+'; else cout << '-'; } else{ if(j % 2 == 0) cout << '-'; else cout << '+'; } } cout << '+' << endl; } } else{ cout << m - 1 + n - 2 << endl; for(int i = 0;i < n;i ++){ if(i == 0 || i == n - 1){ for(int j = 0;j < m - 1;j ++) cout << '-'; cout << '+' << endl; continue; } for(int j = 0;j < m - 1;j ++){ if(i % 2 == 1){ if(j % 2 == 0) cout << '+'; else cout << '-'; } else{ if(j % 2 == 0) cout << '-'; else cout << '+'; } } cout << '+' << endl; } } } else{ if(n % 2 == 1){ cout << m - 2 + n - 1 << endl; for(int i = 0;i < n;i ++){ if(i == 0){ cout << '+'; for(int j = 1;j < m - 1;j ++) cout << '-'; cout << '+' << endl; continue; } cout << '+'; for(int j = 1;j < m - 1;j ++){ if(i % 2 == 1){ if(j % 2 == 0) cout << '+'; else cout << '-'; } else{ if(j % 2 == 0) cout << '-'; else cout << '+'; } } cout << '+' << endl; } } else{ cout << m - 2 + n - 2 << endl; for(int i = 0;i < n;i ++){ if(i == 0 || i == n - 1){ cout << '+'; for(int j = 1;j < m - 1;j ++) cout << '-'; cout << '+' << endl; continue; } cout << '+'; for(int j = 1;j < m - 1;j ++){ if(i % 2 == 1){ if(j % 2 == 0) cout << '+'; else cout << '-'; } else{ if(j % 2 == 0) cout << '-'; else cout << '+'; } } cout << '+' << endl; } } } } } }
#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...