168302025-05-13 18:33:25algoproJáték a síkoncpp17Wrong answer 53/100600ms920 KiB
// UUID: cf7c9d3f-6906-4174-b370-403d8dd23376
#include <bits/stdc++.h>
using namespace std;

int n;
vector<vector<int>> nbrs;
vector<bool> vis;

bool dfs(int Indx){
	//printf("%d{", Indx);
	vis[Indx]=true;
	for(int& x : nbrs[Indx]) if(!vis[x]) if(!dfs(x)) return true;
	vis[Indx]=false;
	//printf("}");
	return false;
}

int main() {
	int n;
	cin >> n;
	vector<int> x(n), y(n);
	nbrs.resize(n);
	for(int i=0;i<n;i++){
		cin >> x[i] >> y[i];
		for(int j=0;j<i;j++){
			if(abs(x[i]-x[j])+abs(y[i]-y[j])==1){
				nbrs[i].push_back(j);
				nbrs[j].push_back(i);
			}
		}
	}
	vector<int> win;
	for(int i=0;i<n;i++){
		vis.assign(n, false);
		//printf("\n");
		if(!dfs(i)) win.push_back(i);
	}
	cout << win.size() << '\n';
	for(int i=0;i<win.size();i++) cout << x[win[i]] << ' ' << y[win[i]] << '\n';
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Wrong answer32ms316 KiB
subtask29/9
3Accepted1ms316 KiB
4Accepted1ms508 KiB
subtask30/10
5Accepted1ms316 KiB
6Accepted1ms316 KiB
7Accepted1ms316 KiB
8Wrong answer1ms316 KiB
9Accepted1ms316 KiB
10Wrong answer1ms316 KiB
11Wrong answer1ms316 KiB
12Wrong answer1ms320 KiB
subtask410/10
13Accepted3ms316 KiB
14Accepted3ms316 KiB
15Accepted3ms316 KiB
16Accepted4ms316 KiB
subtask516/16
17Accepted12ms480 KiB
18Accepted8ms316 KiB
19Accepted8ms316 KiB
20Accepted7ms480 KiB
21Accepted19ms500 KiB
subtask618/18
22Accepted3ms500 KiB
23Accepted3ms316 KiB
24Accepted3ms516 KiB
25Accepted3ms508 KiB
26Accepted8ms316 KiB
subtask70/37
27Accepted29ms568 KiB
28Accepted30ms552 KiB
29Time limit exceeded542ms692 KiB
30Time limit exceeded600ms920 KiB
31Time limit exceeded575ms748 KiB
32Wrong answer32ms564 KiB
33Wrong answer134ms564 KiB
34Wrong answer131ms564 KiB
35Wrong answer136ms748 KiB
36Wrong answer35ms568 KiB
37Wrong answer82ms564 KiB
38Wrong answer39ms564 KiB
39Wrong answer391ms820 KiB
40Wrong answer411ms824 KiB
41Wrong answer499ms820 KiB
42Time limit exceeded560ms676 KiB