127492024-12-29 17:53:50sarminÜtős helyzet (75 pont)cpp17Elfogadva 75/753ms576 KiB
#include <bits/stdc++.h>
using namespace std;

bool is_valid(int x, int y) {
	return (x >= 0 && x < 8 && y >= 0 && y < 8);
}

bool can_place(vector<vector<int>>& board, int x, int y, int t) {
	if (board[x][y] != 0) return false;

	for (int i = 0; i < 8; i++) {
		if (board[x][i] != 0) return false;
		if (board[i][y] != 0) return false;
		if (is_valid(x + i, y + i) && board[x + i][y + i] == 2) return false;
		if (is_valid(x - i, y - i) && board[x - i][y - i] == 2) return false;
		if (is_valid(x + i, y - i) && board[x + i][y - i] == 2) return false;
		if (is_valid(x - i, y + i) && board[x - i][y + i] == 2) return false;

		
		if (t == 2 && is_valid(x + i, y + i) && board[x + i][y + i] != 0) return false;
		if (t == 2 && is_valid(x - i, y - i) && board[x - i][y - i] != 0) return false;
		if (t == 2 && is_valid(x + i, y - i) && board[x + i][y - i] != 0) return false;
		if (t == 2 && is_valid(x - i, y + i) && board[x - i][y + i] != 0) return false;
	}
	return true;
}

int main() {

	int n; cin >> n;
	vector<vector<int>> board(8, vector<int>(8));
	
	for (int i = 0; i < n; i++) {
		int t, x, y; cin >> t >> x >> y;
		x--; y--;

		if (t != 3) {
			if (can_place(board, x, y, t)) {
				board[x][y] = t;
				cout << "IGEN\n";
			} else {
				cout << "NEM\n";
			}
		} else {
			board[x][y] = 0;
			cout << "-\n";
		}

		/*for (int j = 0; j < 8; j++) {
			for (int k = 0; k < 8; k++) {
				cout << board[j][k] << " ";
			}
			cout << "\n";
		}*/
	}
	
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base75/75
1Elfogadva0/01ms320 KiB
2Elfogadva0/03ms512 KiB
3Elfogadva2/21ms508 KiB
4Elfogadva2/21ms576 KiB
5Elfogadva3/31ms320 KiB
6Elfogadva3/33ms320 KiB
7Elfogadva5/53ms320 KiB
8Elfogadva6/63ms320 KiB
9Elfogadva6/63ms320 KiB
10Elfogadva6/63ms500 KiB
11Elfogadva6/63ms320 KiB
12Elfogadva6/63ms320 KiB
13Elfogadva6/63ms320 KiB
14Elfogadva6/63ms320 KiB
15Elfogadva6/63ms320 KiB
16Elfogadva6/63ms320 KiB
17Elfogadva6/63ms320 KiB