답안 #990476

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
990476 2024-05-30T13:37:30 Z ToniB Red-blue table (IZhO19_stones) C++17
15 / 100
43 ms 1884 KB
#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> pii;
const int N = 1001;

int t, n, m;
bool ans[N][N];

int main(){
	ios_base::sync_with_stdio(false); cin.tie(0);

	cin >> t;
	while (t--) {
		cin >> n >> m;
		bool swp = 0;
		if (n > m) {
			swap(n, m);
			swp = 1;
		}

		for (int i = 0; i < n; ++i) {
			for (int j = 0; j < m; ++j) ans[i][j] = 0;
		}
		
		int sum = m, mx = (n - 1) / 2;
		multiset<pii> ms;
		queue<pii> tmp;
		for (int i = 0; i < m; ++i) ms.insert({0, i});
		
		for (int i = 0; i < n; ++i) {
			vector<int> cols;
			bool bad = 0;
			while (cols.size() < m / 2 + 1) {
				auto it = ms.begin();
				int idx = (*it).second, cnt = (*it).first;
				ms.erase(it);
				if (cnt == mx) {
					bad = 1; break;
				}
				cols.push_back(idx);
				tmp.push({cnt + 1, idx});
			}
			if (bad) break;
			for (int j : cols) ans[i][j] = 1;
			while (!tmp.empty()) {
				ms.insert(tmp.front());
				tmp.pop();
			}
			++sum;
		}
		
		cout << sum << '\n';

		if (swp) {
			for (int i = 0; i < m; ++i) {
				for (int j = 0; j < n; ++j) {
					if (ans[i][j]) cout << '-';
					else cout << '+';
				} cout << '\n';
			}
		} else {
			for (int i = 0; i < n; ++i) {
				for (int j = 0; j < m; ++j) {
					if (ans[i][j]) cout << '+';
					else cout << '-';
				} cout << '\n';
			}
		}

	}
	return 0;
}

Compilation message

stones.cpp: In function 'int main()':
stones.cpp:34:23: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   34 |    while (cols.size() < m / 2 + 1) {
      |           ~~~~~~~~~~~~^~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB in the table A+B is not equal to 5
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB in the table A+B is not equal to 5
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB in the table A+B is not equal to 5
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 43 ms 1368 KB in the table A+B is not equal to 116
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 42 ms 1364 KB Output is correct
2 Correct 42 ms 1884 KB Output is correct
3 Correct 39 ms 1592 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB in the table A+B is not equal to 5
3 Halted 0 ms 0 KB -