#include <bits/stdc++.h>
using namespace std;
typedef int64_t llo;
#define mp make_pair
#define pb push_back
#define a first
#define b second
int n,m,t;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin>>t;
while(t--){
cin>>n>>m;
if(n==1){
cout<<m<<endl;
for(int j=0;j<m;j++){
cout<<"-";
}
cout<<endl;
}
else if(m==1){
cout<<n<<endl;
for(int j=0;j<n;j++){
cout<<"+"<<endl;
}
cout<<endl;
}
else if(n==2){
cout<<m<<endl;
for(int i=0;i<m;i++){
cout<<"-";
}
cout<<endl;
for(int i=0;i<m;i++){
cout<<"-";
}
cout<<endl;
}
else if(m==2){
cout<<n<<endl;
for(int i=0;i<n;i++){
cout<<"++"<<endl;
}
}
else if(n==3){
cout<<(m+1)<<endl;
for(int i=0;i<m;i++){
cout<<"-";
}
cout<<endl;
for(int i=0;i<m;i++){
cout<<"+";
}
cout<<endl;
for(int i=0;i<m;i++){
cout<<"-";
}
cout<<endl;
}
else if(m==3){
cout<<(n+1)<<endl;
for(int i=0;i<n;i++){
cout<<"+-+"<<endl;
}
}
else if(n==4){
cout<<m+1<<endl;
for(int j=0;j<3;j++){
for(int i=0;i<m;i++){
cout<<"-";
}
cout<<endl;
}
for(int i=0;i<m;i++){
cout<<"+";
}
cout<<endl;
}
else if(m==4){
cout<<n+1<<endl;
for(int i=0;i<n;i++){
cout<<"+++-"<<endl;
}
}
/*else if(m%2==1 and n%2==1){
if(m+3+(n-5)/2>n+3+(m-5)/2){
cout<<(m+3+(n-5)/2)<<endl;
int it[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
it[i][j]=0;
}
}
for(int i=0;i<(m+2)/2;i++){
it[0][i]=1;
}
for(int i=m-(m+2)/2;i<m;i++){
it[1][i]=1;
}
for(int j=0;j<m;j++){
if(it[0][j]!=1 or it[1][j]!=1){
it[2][j]=1;
}
}
for(int i=5;i<n;i+=2){
for(int j=0;j<m;j++){
it[i][j]=1;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(it[i][j]==1){
cout<<"+";
}
else{
cout<<"-";
}
}
cout<<endl;
}
}
else{
cout<<(n+3+(m-5)/2)<<endl;
int it[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
it[i][j]=0;
}
}
for(int i=0;i<(n+2)/2;i++){
it[i][0]=1;
}
for(int i=n-(n+2)/2;i<n;i++){
it[i][1]=1;
}
for(int j=0;j<n;j++){
if(it[j][0]!=1 or it[j][1]!=1){
it[j][2]=1;
}
}
for(int j=5;j<m;j+=2){
for(int i=0;i<n;i++){
it[i][j]=1;
// cout<<i<<","<<j<<endl;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(it[i][j]==1){
cout<<"-";
}
else{
cout<<"+";
}
}
cout<<endl;
}
}
}*/
else if(n==5){
cout<<(m+3+(n-5)/2)<<endl;
int it[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
it[i][j]=0;
}
}
for(int i=0;i<(m+2)/2;i++){
it[0][i]=1;
}
for(int i=m-(m+2)/2;i<m;i++){
it[1][i]=1;
}
for(int j=0;j<m;j++){
if(it[0][j]!=1 or it[1][j]!=1){
it[2][j]=1;
}
}
for(int i=5;i<n;i+=2){
for(int j=0;j<m;j++){
it[i][j]=1;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(it[i][j]==1){
cout<<"+";
}
else{
cout<<"-";
}
}
cout<<endl;
}
}
else if(m==5){
cout<<(n+3)<<endl;
int it[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
it[i][j]=0;
}
}
for(int i=0;i<(n+2)/2;i++){
it[i][0]=1;
}
for(int i=n-(n+2)/2;i<n;i++){
it[i][1]=1;
}
for(int j=0;j<n;j++){
if(it[j][0]!=1 or it[j][1]!=1){
it[j][2]=1;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(it[i][j]==1){
cout<<"-";
}
else{
cout<<"+";
}
}
cout<<endl;
}
}
else if(m==n){
if(m==6){
cout<<9<<endl;
cout<<"++++--"<<endl;
cout<<"--++++"<<endl;
cout<<"++--++"<<endl;
cout<<"------"<<endl;
cout<<"------"<<endl;
cout<<"------"<<endl;
continue;
}
int it[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
it[i][j]=0;
}
}
if(m%2==1 and n%2==1){
cout<<(4*(m/2))<<endl;
for(int i=0;i<(m+1)/2;i++){
for(int j=0;j<(n)/2;j++){
it[j][i]=1;
}
}
for(int i=0;i<(m+1)/2;i++){
for(int j=0;j<(n)/2;j++){
it[n-j-1][m-i-1]=1;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(it[i][j]==1){
cout<<"+";
}
else{
cout<<"-";
}
}
cout<<endl;
}
}
else{
cout<<(4*(n/2-1))<<endl;
for(int i=0;i<(m+2)/2;i++){
for(int j=0;j<(n-1)/2;j++){
it[j][i]=1;
}
}
for(int i=0;i<(m+2)/2;i++){
for(int j=0;j<(n-1)/2;j++){
it[n-j-1][m-i-1]=1;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(it[i][j]==1){
cout<<"+";
}
else{
cout<<"-";
}
}
cout<<endl;
}
}
}
else{
int k=(n+2)/2;
int l=(m+2)/2;
int ma=-1;
pair<int,int> aa={-1,-1};
int bb=m;
for(int i=0;i<=n;i++){
while(i*l+k*bb>(n*m)){
bb-=1;
}
if(i+bb>ma){
ma=i+bb;
aa={i,bb};
}
}
if(aa.b<0){
while(true){
continue;
}
}
int it[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
it[i][j]=0;
}
}
int le=m-aa.b;
/*if(ma==34){
return 0;
}*/
cout<<ma<<endl;
deque<int> freq[1001];
int ind=0;
for(int i=le;i<m;i++){
freq[0].pb(i);
}
//(m-le)
//cout<<aa.a<<","<<aa.b<<endl;
int vis[1001];
for(int i=0;i<1001;i++){
vis[i]=0;
}
for(int i=0;i<aa.a;i++){
vector<int> kk;
for(int j=0;j<l;j++){
if(j<le){
it[i][j]=1;
continue;
}
if(freq[ind].size()==0){
ind+=1;
}
if(ind>=k or freq[ind].size()==0){
while(true){
continue;
}
}
it[i][freq[ind].back()]=1;
// cout<<i<<":"<<freq[ind].back()<<endl;
int xx=freq[ind].back();
kk.pb(xx);
if(vis[xx]==1){
while(true){
continue;
}
}
vis[xx]=1;
freq[ind+1].push_front(xx);
freq[ind].pop_back();
}
for(auto j:kk){
vis[j]=0;
}
}
int coo=0;
for(int i=0;i<m;i++){
int co=0;
for(int j=0;j<n;j++){
if(it[j][i]==1){
co+=1;
}
}
if(co>=k){
coo+=1;
}
}
if(coo!=aa.b){
while(true){
continue;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(it[i][j]==1){
cout<<"+";
}
else{
cout<<"-";
}
}
cout<<endl;
}
}
/*int it[n][m];
if(n>m){
int l=0;
for(int i=0;i<n;i++){
for(int j=l;j<l+(m+2)/2;j++){
it[i][j%m]=1;
}
l=l+(m+2)/2;
l%=m;
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(it[i][j]){
cout<<"+";
}
else{
cout<<"-";
}
}
cout<<endl;
}
}
else{
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(i%2==0){
cout<<"-";
}
else{
cout<<"+";
}
}
cout<<endl;
}
}*/
}
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
384 KB |
Output is correct |
2 |
Correct |
5 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
13 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
384 KB |
Output is correct |
2 |
Correct |
5 ms |
384 KB |
Output is correct |
3 |
Correct |
13 ms |
384 KB |
Output is correct |
4 |
Correct |
21 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
2084 ms |
1024 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
51 ms |
1400 KB |
Output is correct |
2 |
Correct |
32 ms |
3192 KB |
Output is correct |
3 |
Correct |
27 ms |
2432 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
384 KB |
Output is correct |
2 |
Correct |
5 ms |
384 KB |
Output is correct |
3 |
Correct |
13 ms |
384 KB |
Output is correct |
4 |
Correct |
21 ms |
384 KB |
Output is correct |
5 |
Execution timed out |
2084 ms |
1024 KB |
Time limit exceeded |
6 |
Halted |
0 ms |
0 KB |
- |