/*
بسم الله الرحمن الرحيم
Author:
(:Muhammad Aneeq:)
*/
#include <iostream>
#include <queue>
#include <vector>
#warning check the output
using namespace std;
int const N=1010;
char ans[N][N]={};
int n,m;
int check()
{
int a=0;
for (int i=0;i<m;i++)
{
int z=0;
for (int j=0;j<n;j++)
z+=(ans[j][i]=='-');
if (z>n-z)
a++;
}
for (int i=0;i<n;i++)
{
int z=0;
for (int j=0;j<m;j++)
z+=(ans[i][j]=='+');
a+=(z>m-z);
}
return a;
}
void print()
{
cout<<check()<<endl;
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
cout<<ans[i][j];
cout<<endl;
}
}
inline void solve()
{
cin>>n>>m;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
ans[i][j]=' ';
if (m>n)
{
priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>pq;
for (int i=0;i<n;i++)
pq.push({0,i});
for (int i=0;i<m;i++)
{
vector<pair<int,int>>ind;
for (int j=0;j<n/2+1;j++)
{
ind.push_back(pq.top());
pq.pop();
}
for (auto [k,j]:ind)
{
ans[j][i]='-';
pq.push({k+1,j});
}
}
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
if (ans[i][j]!='-')
ans[i][j]='+';
int z=check();
char pr[n];
for (int i=0;i<n;i++)
pr[i]=ans[i][m-1],ans[i][m-1]='+';
int g=check();
if (g>z)
print();
else
{
for (int i=0;i<n;i++)
ans[i][m-1]=pr[i];
print();
}
}
else
{
priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>pq;
for (int i=0;i<m;i++)
pq.push({0,i});
for (int i=0;i<n;i++)
{
vector<pair<int,int>>ind;
for (int j=0;j<m/2+1;j++)
{
ind.push_back(pq.top());
pq.pop();
}
for (auto [k,j]:ind)
{
ans[j][i]='+';
pq.push({k+1,j});
}
}
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
if (ans[i][j]!='+')
ans[i][j]='-';
int z=check();
char pr[m];
for (int i=0;i<m;i++)
pr[i]=ans[n-1][i],ans[n-1][i]='-';
int g=check();
if (g>z)
print();
else
{
for (int i=0;i<m;i++)
ans[n-1][i]=pr[i];
print();
}
}
}
int main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int t=1;
cin>>t;
for (int i=1;i<=t;i++)
{
solve();
}
}
컴파일 시 표준 에러 (stderr) 메시지
stones.cpp:10:2: warning: #warning check the output [-Wcpp]
10 | #warning check the output
| ^~~~~~~
# | 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... |