295102026-06-11 09:57:54Kristof0306Legközelebbi szigetek **cpp17Elfogadva 100/1003ms512 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, m, k, inp, len; cin >> n >> m >> k;
	vector<pair<int, int>> move = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
	queue<pair<int, int>> kell;
	vector<vector<int>> visited(n, vector<int>(m));
	
	for (int y = 0; y < n; y++) {
		for (int x = 0; x < m; x++) {
			cin >> inp;
			visited[y][x] = inp;
			if (inp != 0) {
				kell.push({y, x});
			}
		}
	}
	bool vege = false;
	int out1 = 0, out2 = 0;
	while (!kell.empty() && !vege) {
		len = kell.size();
		for (int i = 0; i < len; i++) {
			pair<int, int> csucs = kell.front();
			kell.pop();
			for (pair<int, int> mov : move) {
				if ((csucs.first - mov.first) < 0 || (csucs.first - mov.first) >= n) {
					continue;
				}
				if ((csucs.second - mov.second) < 0 || (csucs.second - mov.second) >= m) {
					continue;
				}
				if (visited[(csucs.first - mov.first)][(csucs.second - mov.second)]) {
					if (visited[(csucs.first - mov.first)][(csucs.second - mov.second)] == visited[csucs.first][csucs.second]) {
						continue;
					}
					out1 = visited[(csucs.first - mov.first)][(csucs.second - mov.second)];
					out2 = visited[csucs.first][csucs.second];
					vege = true;
				}
				visited[(csucs.first - mov.first)][(csucs.second - mov.second)] = visited[csucs.first][csucs.second];
				kell.push({(csucs.first - mov.first), (csucs.second - mov.second)});
			}
				 
		}
	}
	cout << out1 << " " << out2;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base100/100
1Elfogadva6/61ms512 KiB
2Elfogadva6/61ms316 KiB
3Elfogadva6/61ms316 KiB
4Elfogadva6/61ms316 KiB
5Elfogadva6/61ms508 KiB
6Elfogadva7/71ms404 KiB
7Elfogadva7/71ms316 KiB
8Elfogadva7/71ms352 KiB
9Elfogadva7/73ms316 KiB
10Elfogadva7/73ms316 KiB
11Elfogadva7/73ms508 KiB
12Elfogadva7/73ms316 KiB
13Elfogadva7/73ms316 KiB
14Elfogadva7/73ms356 KiB
15Elfogadva7/73ms316 KiB