답안 #1094244

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1094244 2024-09-29T07:24:18 Z Muhammet Red-blue table (IZhO19_stones) C++17
0 / 100
22 ms 1484 KB
#include <bits/stdc++.h>

using namespace std;

vector <vector <char>> a;

int main(){
	ios::sync_with_stdio(false); cin.tie(nullptr);
	int T;
	cin >> T;
	while(T--){
		int n, m;
		cin >> n >> m;
		if(n >= m){
			a.assign(n, vector <char> (m,'+'));
			vector <int> vis(n,0), v;
			int x = 0;
			for(int j = 0; j < m; j++){
				int cnt = (n/2 + 1);
				v.clear();
				while(cnt--){
					v.push_back(x);
					// cout << x << " ";
					x++;
					x %= n;
				}
				// cout << '\n';
				bool tr = 0;
				// cout << (int)v.size() << ' ';
				for(int i = 0; i < (int)v.size(); i++){
					vis[v[i]]++;
					// cout << i << " ";
					if(vis[v[i]] > (m-(m/2 + 1))) tr = 1; break;
				}
				// cout << "\n";
				if(tr == 1){
					break;
				}
				for(int i = 0; i < (int)v.size(); i++){
					a[v[i]][j] = '-';
				}
			}
		}
		else {
			a.assign(n, vector <char> (m,'-'));
			vector <int> vis(m,0), v;
			int x = 0;
			for(int j = 0; j < n; j++){
				int cnt = (m/2 + 1);
				v.clear();
				while(cnt--){
					v.push_back(x);
					x++;
					x %= m;
				}
				bool tr = 0;
				for(auto i : v){
					vis[i]++;
					if(vis[i] > (n-(n/2 + 1))) tr = 1; break;
				}
				if(tr == 1) break;
				for(auto i : v){
					a[j][i] = '+';
				}
			}
		}
		int ans = 0;
		for(int i = 0; i < n; i++){
			int a1 = 0, b1 = 0;
			for(int j = 0; j < m; j++){
				if(a[i][j] == '+') a1++;
				else b1++;
			}
			ans += (a1 > b1);
		}
		for(int j = 0; j < m; j++){
			int a1 = 0, b1 = 0;
			for(int i = 0; i < n; i++){
				if(a[i][j] == '+') a1++;
				else b1++;
			}
			ans += (b1 > a1);
		}
		cout << ans << '\n';
		for(int i = 0; i < n; i++){
			for(int j = 0; j < m; j++){
				cout << a[i][j];
			}
			cout << '\n';
		}
	}
}

Compilation message

stones.cpp: In function 'int main()':
stones.cpp:33:6: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   33 |      if(vis[v[i]] > (m-(m/2 + 1))) tr = 1; break;
      |      ^~
stones.cpp:33:44: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   33 |      if(vis[v[i]] > (m-(m/2 + 1))) tr = 1; break;
      |                                            ^~~~~
stones.cpp:59:6: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   59 |      if(vis[i] > (n-(n/2 + 1))) tr = 1; break;
      |      ^~
stones.cpp:59:41: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   59 |      if(vis[i] > (n-(n/2 + 1))) tr = 1; break;
      |                                         ^~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 352 KB Wrong answer in test 3 3: 3 < 4
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Wrong answer in test 3 45: 24 < 46
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 352 KB Wrong answer in test 3 3: 3 < 4
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 22 ms 1484 KB Wrong answer in test 97 21: 59 < 116
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 22 ms 1368 KB Wrong answer in test 24 24: 24 < 44
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 352 KB Wrong answer in test 3 3: 3 < 4
2 Halted 0 ms 0 KB -