Submission #381982

#TimeUsernameProblemLanguageResultExecution timeMemory
381982dorijanlendvajRed-blue table (IZhO19_stones)C++14
100 / 100
16 ms11756 KiB
#include <bits/stdc++.h>
#define x first
#define y second
#define pii pair<int,int>
using ll=long long;
#define pb push_back
#define eb emplace_back
#define vi vector<int>
#define vl vector<ll>
#define all(a) begin(a),end(a)

using namespace std;

const int N=300010,MOD=1e9+7;
const char en='\n';
const ll LLINF=1ll<<60;

int t,n,m;
string re[N];

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin>>t;
	while (t--)
	{
		cin>>n>>m;
		int ma=-1,kak=-1;
		for (int ms=0;ms<=n/2;++ms)
		{
			int re=min(m,((n-ms)*((m-1)/2))/(n/2+1-ms))+n-ms;
			if (re>ma)
			{
				ma=re;
				kak=ms;
			}
		}
		if (m+n-(n/2+1)>ma)
		{
			ma=m+n-(n/2+1);
			kak=n/2+1;
		}
		cout<<ma<<en;
		int ms=kak;
		for (int i=0;i<ms;++i)
		{
			re[i]=string(m,'-');
		}
		for (int i=ms;i<n;++i) re[i]=string(m,'+');
		int pc=(m-1)/2;
		if (ms!=n/2+1) for (int k=0;k<pc*(n-ms);++k)
		{
			int i=k%(n-ms)+ms,j=k/(n/2+1-ms);
			if (j>=m) break;
			re[i][j]='-';
		}
		for (int i=0;i<n;++i) cout<<re[i]<<en;
	}
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...