제출 #402718

#제출 시각아이디문제언어결과실행 시간메모리
402718keta_tsimakuridzeRed-blue table (IZhO19_stones)C++14
100 / 100
166 ms2240 KiB
#include<bits/stdc++.h>
#define f first
//#define int long long
#define s second
#define pii pair<int,int>
using namespace std;
const int N=1e3+5,mod=1e9+7;
int t,n,m,red[N];
char a[N][N];
set<pii> s;
 main(){
	// t=1;
	cin >> t;
	while(t--){
		cin>>n>>m;
		for(int i=1;i<=m;i++) red[i] = 0;

		int ans = m,B_=m,A_ = 0;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++) a[i][j]='-';
		}
		for(int i=1;i<=n;i++){
			s.clear();
			int all=i*(m/2+1);
			int all1=all;
			int l = 0, r=m/2+1,B=0;
			while(l<=r){
				int mid=(l+r)/2;
				all=all1;
				for(int j=1;j<=mid;j++) {
					all -= i;
				} 
				if((n-1)/2*(m-mid) >= all) r=mid-1,B=mid;
				else l=mid+1;
				
			} 
			if(i+m-B > ans) ans=i+m-B,A_=i,B_=m-B;
		}
		cout<<ans<<endl;
		for(int i=1;i<=A_;i++) {
			s.clear();
			for(int j=m-B_+1;j<=m;j++) s.insert({red[j],j});
			for(int j=1;j<=m-B_;j++) {
				a[i][j]='+'; 
			}
			int c = m/2+1 - (m-B_);
			for(int j=1;j<=c;j++){
				pii c = *s.begin();
				red[c.s] ++,a[i][c.s] = '+';
				s.erase(c);
			}
		}
		for(int i=1;i<=n;i++){
		
		for(int j=1;j<=m;j++) 
		cout<<a[i][j];
		cout<<endl;
		}
	}
}

컴파일 시 표준 에러 (stderr) 메시지

stones.cpp:11:2: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   11 |  main(){
      |  ^~~~
#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...