제출 #330977

#제출 시각아이디문제언어결과실행 시간메모리
330977tavhidRed-blue table (IZhO19_stones)C++14
17 / 100
106 ms1388 KiB
#include <bits/stdc++.h> //#pragma GCC optimize("Ofast") //1.0 * clock() / CLOCKS_PER_SEC #define fi first #define se second #define int long long int #define dl double long using namespace std; const int N = 1e6 + 7; const int INF = 1e10 + 7; const int mod = 998244353; //mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); void solve1() { int n, m; cin >> n >> m; if(n < 3 && n == min(n, m)){ cout << m << endl; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cout << '-'; } cout << endl; } return; } if(m < 3 && m == min(n, m)){ cout << n << endl; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cout << '+'; } cout << endl; } return; } if(m >= n && m <= 5 && n <= 5){ int x = m / 2 + 1; int y = n / 2 - 1; if(n % 2 == 1) y++; bool f = true; if(x * 2 - m > y) f = false; cout << y * 2 + (m - x) * 2 + (- y + x * 2 - m) * !f << endl; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if((j < x && i < y) || (j + 1 > m - x && i + 1 > n - y && f)){ cout << '+'; }else{ cout << '-'; } } cout << endl; } return; }else if(n > m && m <= 5 && n <= 5){ int x = m / 2 - 1; if(m % 2 == 1) x++; int y = n / 2 + 1; bool f = true; if(y * 2 - n > x) f = false; cout << x * 2 + (n - y) * 2 + (- x + y * 2 - n) * !f << endl; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if((j < x && i < y) || (j + 1 > m - x && i + 1 > n - y && f)){ cout << '-'; }else{ cout << '+'; } } cout << endl; } return; } if(m >= n){ cout << m + (n + 1) / 2 << endl; for(int i = 0; i < (n + 1) / 2; i++){ for(int j = 0; j < m; j++){ if((i + j) % ((n + 1) / 2) == 0){ cout << '-'; }else{ cout << '+'; } } cout << endl; } for(int i = (n + 1) / 2; i < n; i++){ for(int j = 0; j < m; j++){ cout << '-'; } cout << endl; } }else{ cout << n + (m + 1) / 2; for(int i = 0; i < n; i++){ for(int j = 0; j < (m + 1) / 2; j++){ if((i + j) % ((m + 1) / 2) == 0){ cout << '+'; }else{ cout << '-'; } } cout << endl; } for(int i = 0; i < n; i++){ for(int j = (m + 1) / 2; j < m; j++){ cout << '+'; } cout << endl; } } } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); srand(time(0)); //freopen( "input.txt" , "r" , stdin ); //freopen( "output.txt" , "w" , stdout ); //freopen( "cupboard.in" , "r" , stdin ); //freopen( "cupboard.out" , "w" , stdout ); int cghf = 1;cin >> cghf; while( cghf-- ){ solve1(); } }
#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...