이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
int tst,n,m;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>tst;
while(tst--)
{
cin>>n>>m;
pii ans(n,0);
if(m>n) ans=pii(0,m);
for(int i=n;i>=1;--i)
for(int j=m;j>=1;--j)
{
if(i+j<=ans.first+ans.second)
break;
int x=n/2+1,y=m/2+1;
x=max(0,x-n+i);
if(x==0)
{
ans=pii(i,j);
continue;
}
if(m==y)
continue;
int tmp=0,rem=0;
for(int _i=0;_i<x&&tmp<=i;++_i)
for(int _j=0;_j<j&&tmp<=i;++_j)
{
if(rem==0) ++tmp,
rem=min(j,m-y);
--rem;
}
if(tmp<=i) ans=pii(i,j);
}
cout<<ans.first+ans.second<< '\n';
int x=n/2+1,y=m/2+1;
x=max(0,x-n+ans.first);
vector<string> s(ans.first,string(m,'+'));
int tmp=-1,rem=0;
for(int i = 0; i < x; ++i)
for(int j=m-ans.second;j<m;++j)
{
if(rem==0) ++tmp,
rem=min(ans.second,m-y);
s[tmp][j]='-'; --rem;
}
for(auto i:s) cout<<i<<'\n';
for(int i=ans.first;i<n;++i)
cout<<string(m,'-')<<'\n';
}
return 0;
}
| # | 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... |