Submission #236542

#TimeUsernameProblemLanguageResultExecution timeMemory
236542kshitij_sodaniRed-blue table (IZhO19_stones)C++17
100 / 100
121 ms6008 KiB
#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;
		
			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++){
				for(int j=0;j<=m;j++){
					if(i*l+j*k<=n*m){
						int le2=m-j;
						int st=1;
						if(l>le2){
							if((l-le2)*i>(n-k)*(j)){
								st=0;
							}
						}
						if(st){
							if(i+j>ma){
								ma=i+j;
								aa={i,j};
							}
						}
					}
				}

			}
			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=0;i<1001;i++){
				freq[i].clear();
			}
			for(int i=le;i<m;i++){
				freq[0].pb(i);
			}
			//(m-le)
			//cout<<aa.a<<","<<aa.b<<endl;
	
			for(int i=0;i<aa.a;i++){
				for(int j=0;j<l;j++){
					if(j<le){
						it[i][j]=1;
						continue;
					}
					if(freq[ind].size()==0){
						ind+=1;
					}
	
					it[i][freq[ind].back()]=1;
				//	cout<<i<<":"<<freq[ind].back()<<endl;
					int xx=freq[ind].back();


					freq[ind+1].push_front(xx);
					freq[ind].pop_back();
				}

			}
			int coo=0;
			for(int i=0;i<m;i++){
				int co=0;
				for(int j=0;j<n;j++){
					if(it[j][i]==0){
						co+=1;
					}
				}
				if(co>=k){
					coo+=1;

				}
			
			}
		
			cout<<ma<<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;
			}


	
		
	}


	return 0;
}

Compilation message (stderr)

stones.cpp: In function 'int main()':
stones.cpp:20:8: warning: unused variable 'bb' [-Wunused-variable]
    int bb=m;
        ^~
#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...