Submission #490706

#TimeUsernameProblemLanguageResultExecution timeMemory
490706Mr_HusanboyRed-blue table (IZhO19_stones)C++14
100 / 100
209 ms3288 KiB
// Muallif: Mansuraliyev Husanboy Murotali o'g'li  >> NamPS

#include<bits/stdc++.h>

using namespace std;
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
const double PI=3.1415926535897932384626433832795;
// 0-9 >> 48-57;    A-Z>>65-90   and   a-z>>97-122 respectively;



int main()
{
	ios;int t; cin>>t;while(t--){
		map<int,int>row,col;
		int n,m;
		cin>>n>>m;bool ok=1;
		if(n>m) swap(n,m),ok=0;
		int mr=m/2+1,mc=(n-1)/2;
		int mx=0;
		string s[n];
		for(int i=0;i<n;i++){
			int mxx=mx;
			for(int j=0;j<m;j++){
				if(col[j]<mc){
					if(row[i]<mr){
						if(col[j]<mxx||mr-row[i]>=m-j){
							s[i]+="+";col[j]++;row[i]++;
						}else s[i]+="-";
					}else{
						s[i]+="-";
					}
				}else{
					s[i]+="-";
				}
				mx=max(mx,col[j]);
			}
		}
		int ans=0;
		for(int i=0;i<n;i++){
			if(row[i]>=mr) ans++;
		}
		for(int j=0;j<m;j++) if(col[j]<=mc) ans++;
		cout<<ans<<"\n";if(ok){
		for(int i=0;i<n;i++) cout<<s[i]<<"\n";}else{
			for(int i=m-1;i>=0;i--){
				for(int j=0;j<n;j++){
					if(s[j][i]=='-') cout<<"+";else cout<<"-";
				}
				cout<<"\n";
			}
		}
		
		//cout<<endl;
	}
}
#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...