This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int maxn=1e3+5;
int tt;
int n,m,jog,st,now;
char c[maxn][maxn],p[maxn][maxn];
void f(int n,int m){
int num = (m - 1)/2,num1 = m-num;
int nw = (n - 1) / 2,nw1 = n - nw;
jog = n + num;
for(int i = 1;i <= n;i++){
for(int j = 1;j <= num1;j++) c[i][j] = '+';
for(int j = num1+1;j <= m;j++) c[i][j] = '-';
}
int ay = 0; if(n % 2 == 0) ay++;
if(m % 2 == 0) ay++;
// cout<<num<<' '<<num1<<' '<<nw<<' '<<nw1<<'\n';
if(n+m-2-ay > n + num){
jog = n+m-2-ay;
for(int i = 1;i <= n;i++) for(int j = 1;j <= m;j++) c[i][j]='+';
for(int i = m;i > num1;i--) for(int j = 1;j <= nw1;j++) c[j][i]='-';
st = 1; if(m % 2 == 0) st=2;
for(int i = num1;i > st;i--) for(int j = n;j > nw1;j--) c[j][i]='-';
for(int i = 1;i <= m;i++) c[nw1][i]='-';
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin >> tt;
while(tt--){
cin >> n >> m;
f(n,m);
now = jog;
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
p[i][j] = c[i][j];
}
}
f(m,n);
if(now > jog){
cout<<now<<'\n';
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
cout<<p[i][j];
}
cout<<'\n';
}
continue;
}
// cout<<"HAHA\n";
cout<<jog<<'\n';
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
if(c[j][i] == '-') cout<<"+";
else cout<<"-";
}
cout<<'\n';
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |