제출 #382102

#제출 시각아이디문제언어결과실행 시간메모리
382102vanicRed-blue table (IZhO19_stones)C++14
0 / 100
84 ms1516 KiB
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cassert>
#include <set>

using namespace std;

const int maxn=1005;

char c[maxn][maxn];
set < pair < int, int > > s;

void solve(){
	int n, m;
	cin >> n >> m;
	int c1=(n+2)/2;
	int c2=(m+2)/2;
	int uk=n*m;
	int sol=0;
	int najb;
	int a, b;
	for(int i=0; i<=m; i++){
		a=i;
		b=min(n, (uk-c1*a)/c2);
		if(a+b>sol){
			sol=a+b;
			najb=b;
		}
	}
	cout << sol << '\n';
//	cout << naja << ' ' << najb << endl;
	for(int i=0; i<m; i++){
		s.insert({0, i});
	}
	for(int i=0; i<n; i++){
		for(int j=0; j<m; j++){
			c[i][j]='+';
		}
	}
	int cor;
	for(int i=0; i<najb; i++){
		for(int j=0; j<(m-1)/2; j++){
			cor=s.begin()->second;
			s.insert({s.begin()->first+1, s.begin()->second});
			s.erase(s.begin());
			c[i][cor]='-';
		}
	}
	for(int i=0; i<najb; i++){
		for(int j=0; j<m; j++){
			cout << c[i][j];
		}
		cout << '\n';
	}
	for(int i=0; i<n-najb; i++){
		for(int j=0; j<m; j++){
			cout << '-';
		}
		cout << '\n';
	}
	s.clear();
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin >> t;
	while(t--){
		solve();
	}
	return 0;
}

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

stones.cpp: In function 'void solve()':
stones.cpp:21:6: warning: 'najb' may be used uninitialized in this function [-Wmaybe-uninitialized]
   21 |  int najb;
      |      ^~~~
#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...