#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
//#pragma GCC opimize(-O3)
//#pragma GCC opimize(Ofast)
//#pragma GCC opimize(unroll-loops)
//#pragma GCC target("avx,avx2,popcnt,sse,sse2,sse3,sse4,abm,tune=native")
#define m_p make_pair
#define vec vector
#define all(x) x.begin(),x.end()
#define pb push_back
#define sz(x) (int)x.size()
#define pw(x) (1LL<<x)
#define f first
#define s second
using namespace std;
using namespace __gnu_pbds;
typedef long double ld;
typedef pair<int,int> pii;
pair<vec<vec<char>>,int>solve(int n,int m){
vec<vec<char>>a(n,vec<char>(m,'+'));
int ans=n;
vec<pii>st;
for(int i=0;i<n;i++){
if((int)m/2)st.pb({m/2,i});
}
for(int i=0;i<m;i++){
vec<pii>del;
int ok=1;
for(int j=0;j<(n+1)/2;j++){
if(!sz(st)){
ok=0;
break;
}
pii w=st.back();st.pop_back();
a[w.s][i]='-';
w.f--;
if(w.f) del.pb(w);
}
for(auto &z : del) st.pb(z);
sort(all(st));
ans+=ok;
}
return {a,ans};
}
map<char,int>op;
signed main()
{
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int t;
cin>>t;
op['+']='-';
op['-']='+';
while(t--){
int n,m;
cin>>n>>m;
// vec<vec<char>>a(n,vec<char>(m,'+'));
auto f=solve(n,m),s=solve(m,n);
// cerr<<f.s<<' '<<s.s<<endl;
cout<<max(f.s,s.s)<<'\n';
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(f.s>s.s)
cout<<f.f[i][j];
else
cout<<(char)op[s.f[j][i]];
}
cout<<'\n';
}
}
return 0;
}
/*
*/
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Incorrect |
0 ms |
204 KB |
in the table A+B is not equal to 2 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
332 KB |
in the table A+B is not equal to 2 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Incorrect |
0 ms |
204 KB |
in the table A+B is not equal to 2 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
84 ms |
1380 KB |
Output is correct |
2 |
Correct |
75 ms |
2916 KB |
Output is correct |
3 |
Correct |
71 ms |
3352 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
76 ms |
1404 KB |
in the table A+B is not equal to 48 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Incorrect |
0 ms |
204 KB |
in the table A+B is not equal to 2 |