# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
382070 | 2021-03-26T11:03:19 Z | vanic | Red-blue table (IZhO19_stones) | C++14 | 0 ms | 0 KB |
#include <iostream> #include <cmath> #include <algorithm> using namespace std; const int maxn=1005; void solve(){ int n, m; cin >> n >> m; int gran; if(n>m){ gran=(m-1)/2; if(m>3 && n&1){ cout << n+gran*2-1 << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(j<gran){ if(i<(n+1)/2){ cout << '-'; } else{ cout << '+'; } } else if(m-j>gran){ cout << '+'; } else{ if(i<n/2){ cout << '+'; } else{ cout << '-'; } } } cout << '\n'; } } /* else if(m>4 && !(n&1)){ cout << n+gran*2-2 << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(j<gran){ if(i<=n/2){ cout << '-'; } else{ cout << '+'; } } else if(m-j>gran){ cout << '+'; } else{ if(i<(n-1)/2){ cout << '+'; } else{ cout << '-'; } } } cout << '\n'; } }*/ else{ cout << n+gran << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(j<gran){ cout << '-'; } else{ cout << '+'; } } cout << '\n'; } } } else{ gran=(n-1)/2; if(n>3 && m&1){ cout << m+gran*2-1 << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(i<gran){ if(j<(m+1)/2){ cout << '+'; } else{ cout << '-'; } } else if(n-i>gran){ cout << '-'; } else{ if(j<m/2){ cout << '-'; } else{ cout << '+'; } } } cout << '\n'; } } /* else if(n>4 && !(m&1)){ cout << m+gran*2-2 << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(i<gran){ if(j<=m/2){ cout << '+'; } else{ cout << '-'; } } else if(n-i>gran){ cout << '-'; } else{ if(j<(m-1)/2){ cout << '-'; } else{ cout << '+'; } } } cout << '\n'; } }*/ else{ cout << m+gran << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(i<gran){ cout << '+'; } else{ cout << '-'; } } cout << '\n'; } } } } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t; cin >> t; while(t--){ solve(); } return 0; } #include <iostream> #include <cmath> #include <algorithm> using namespace std; const int maxn=1005; void solve(){ int n, m; cin >> n >> m; int gran; if(n>m){ gran=(m-1)/2; if(m>3 && n&1){ cout << n+gran*2-1 << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(j<gran){ if(i<(n+1)/2){ cout << '-'; } else{ cout << '+'; } } else if(m-j>gran){ cout << '+'; } else{ if(i<n/2){ cout << '+'; } else{ cout << '-'; } } } cout << '\n'; } } /* else if(m>4 && !(n&1)){ cout << n+gran*2-2 << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(j<gran){ if(i<=n/2){ cout << '-'; } else{ cout << '+'; } } else if(m-j>gran){ cout << '+'; } else{ if(i<(n-1)/2){ cout << '+'; } else{ cout << '-'; } } } cout << '\n'; } }*/ else{ cout << n+gran << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(j<gran){ cout << '-'; } else{ cout << '+'; } } cout << '\n'; } } } else{ gran=(n-1)/2; if(n>3 && m&1){ cout << m+gran*2-1 << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(i<gran){ if(j<(m+1)/2){ cout << '+'; } else{ cout << '-'; } } else if(n-i>gran){ cout << '-'; } else{ if(j<m/2){ cout << '-'; } else{ cout << '+'; } } } cout << '\n'; } } /* else if(n>4 && !(m&1)){ cout << m+gran*2-2 << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(i<gran){ if(j<=m/2){ cout << '+'; } else{ cout << '-'; } } else if(n-i>gran){ cout << '-'; } else{ if(j<(m-1)/2){ cout << '-'; } else{ cout << '+'; } } } cout << '\n'; } }*/ else{ cout << m+gran << '\n'; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(i<gran){ cout << '+'; } else{ cout << '-'; } } cout << '\n'; } } } } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t; cin >> t; while(t--){ solve(); } return 0; }