| 19185 | 2025-11-28 14:38:45 | szil | Legközelebbi mezők | cpp17 | Elfogadva 100/100 | 465ms | 42492 KiB |
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAXN = 2001;
const int INF = 1e9;
int n, m;
const pair<int, int> DIR[4] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
bool is_ok(int i, int j) {
return 1 <= i && i <= n && 1 <= j && j <= m;
}
int dist[MAXN][MAXN];
char c[MAXN][MAXN];
bool vis1[MAXN][MAXN], vis2[MAXN][MAXN];
void dfs1(int x, int y) {
vis1[x][y] = 1;
for (auto [dx, dy] : DIR) {
int nx = x + dx;
int ny = y + dy;
if (is_ok(nx, ny) && !vis1[nx][ny] && c[nx][ny] != '#') {
dfs1(nx, ny);
}
}
}
void dfs2(int x, int y) {
vis2[x][y] = 1;
for (auto [dx, dy] : DIR) {
int nx = x + dx;
int ny = y + dy;
if (is_ok(nx, ny) && !vis2[nx][ny] && c[nx][ny] != '#') {
dfs2(nx, ny);
}
}
}
void bfs() {
queue<pair<int, int>> q;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (vis1[i][j]) {
q.push({i, j});
} else {
dist[i][j] = INF;
}
}
}
while (!q.empty()) {
auto [x, y] = q.front(); q.pop();
for (auto [dx, dy] : DIR) {
int nx = x + dx;
int ny = y + dy;
if (is_ok(nx, ny) && dist[nx][ny] > dist[x][y] + 1) {
dist[nx][ny] = dist[x][y] + 1;
q.push({nx, ny});
}
}
}
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> c[i][j];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (c[i][j] == 'A') {
dfs1(i, j);
}
if (c[i][j] == 'B') {
dfs2(i, j);
}
}
}
bfs();
int ans = INF;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (vis2[i][j]) ans = min(ans, dist[i][j]);
}
}
cout << ans << "\n";
return 0;
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Elfogadva | 1ms | 500 KiB | ||||
| 3 | Elfogadva | 1ms | 316 KiB | ||||
| subtask2 | 10/10 | ||||||
| 4 | Elfogadva | 1ms | 316 KiB | ||||
| 5 | Elfogadva | 1ms | 316 KiB | ||||
| 6 | Elfogadva | 1ms | 508 KiB | ||||
| 7 | Elfogadva | 3ms | 1100 KiB | ||||
| 8 | Elfogadva | 3ms | 1220 KiB | ||||
| 9 | Elfogadva | 3ms | 1016 KiB | ||||
| 10 | Elfogadva | 3ms | 1076 KiB | ||||
| 11 | Elfogadva | 2ms | 1076 KiB | ||||
| 12 | Elfogadva | 2ms | 820 KiB | ||||
| 13 | Elfogadva | 3ms | 1076 KiB | ||||
| 14 | Elfogadva | 3ms | 1332 KiB | ||||
| subtask3 | 20/20 | ||||||
| 15 | Elfogadva | 28ms | 10772 KiB | ||||
| 16 | Elfogadva | 29ms | 12844 KiB | ||||
| 17 | Elfogadva | 256ms | 34428 KiB | ||||
| 18 | Elfogadva | 175ms | 27192 KiB | ||||
| 19 | Elfogadva | 27ms | 11064 KiB | ||||
| 20 | Elfogadva | 34ms | 12764 KiB | ||||
| 21 | Elfogadva | 21ms | 2356 KiB | ||||
| 22 | Elfogadva | 215ms | 16696 KiB | ||||
| 23 | Elfogadva | 21ms | 2100 KiB | ||||
| 24 | Elfogadva | 221ms | 17972 KiB | ||||
| subtask4 | 20/20 | ||||||
| 25 | Elfogadva | 1ms | 316 KiB | ||||
| 26 | Elfogadva | 1ms | 316 KiB | ||||
| 27 | Elfogadva | 1ms | 508 KiB | ||||
| 28 | Elfogadva | 97ms | 13108 KiB | ||||
| 29 | Elfogadva | 90ms | 12864 KiB | ||||
| 30 | Elfogadva | 79ms | 11572 KiB | ||||
| 31 | Elfogadva | 90ms | 16324 KiB | ||||
| 32 | Elfogadva | 71ms | 11664 KiB | ||||
| 33 | Elfogadva | 100ms | 14644 KiB | ||||
| 34 | Elfogadva | 101ms | 15444 KiB | ||||
| 35 | Elfogadva | 71ms | 12556 KiB | ||||
| 36 | Elfogadva | 98ms | 16692 KiB | ||||
| 37 | Elfogadva | 96ms | 16692 KiB | ||||
| 38 | Elfogadva | 184ms | 14384 KiB | ||||
| 39 | Elfogadva | 381ms | 24116 KiB | ||||
| 40 | Elfogadva | 404ms | 24116 KiB | ||||
| 41 | Elfogadva | 386ms | 23952 KiB | ||||
| 42 | Elfogadva | 407ms | 24116 KiB | ||||
| subtask5 | 50/50 | ||||||
| 43 | Elfogadva | 1ms | 316 KiB | ||||
| 44 | Elfogadva | 1ms | 316 KiB | ||||
| 45 | Elfogadva | 1ms | 508 KiB | ||||
| 46 | Elfogadva | 3ms | 1100 KiB | ||||
| 47 | Elfogadva | 3ms | 1220 KiB | ||||
| 48 | Elfogadva | 3ms | 1016 KiB | ||||
| 49 | Elfogadva | 3ms | 1076 KiB | ||||
| 50 | Elfogadva | 2ms | 1076 KiB | ||||
| 51 | Elfogadva | 2ms | 820 KiB | ||||
| 52 | Elfogadva | 3ms | 1076 KiB | ||||
| 53 | Elfogadva | 3ms | 1332 KiB | ||||
| 54 | Elfogadva | 28ms | 10772 KiB | ||||
| 55 | Elfogadva | 29ms | 12844 KiB | ||||
| 56 | Elfogadva | 256ms | 34428 KiB | ||||
| 57 | Elfogadva | 175ms | 27192 KiB | ||||
| 58 | Elfogadva | 27ms | 11064 KiB | ||||
| 59 | Elfogadva | 34ms | 12764 KiB | ||||
| 60 | Elfogadva | 21ms | 2356 KiB | ||||
| 61 | Elfogadva | 215ms | 16696 KiB | ||||
| 62 | Elfogadva | 21ms | 2100 KiB | ||||
| 63 | Elfogadva | 221ms | 17972 KiB | ||||
| 64 | Elfogadva | 97ms | 13108 KiB | ||||
| 65 | Elfogadva | 90ms | 12864 KiB | ||||
| 66 | Elfogadva | 79ms | 11572 KiB | ||||
| 67 | Elfogadva | 90ms | 16324 KiB | ||||
| 68 | Elfogadva | 71ms | 11664 KiB | ||||
| 69 | Elfogadva | 100ms | 14644 KiB | ||||
| 70 | Elfogadva | 101ms | 15444 KiB | ||||
| 71 | Elfogadva | 71ms | 12556 KiB | ||||
| 72 | Elfogadva | 98ms | 16692 KiB | ||||
| 73 | Elfogadva | 96ms | 16692 KiB | ||||
| 74 | Elfogadva | 184ms | 14384 KiB | ||||
| 75 | Elfogadva | 381ms | 24116 KiB | ||||
| 76 | Elfogadva | 404ms | 24116 KiB | ||||
| 77 | Elfogadva | 386ms | 23952 KiB | ||||
| 78 | Elfogadva | 407ms | 24116 KiB | ||||
| 79 | Elfogadva | 115ms | 23348 KiB | ||||
| 80 | Elfogadva | 112ms | 20020 KiB | ||||
| 81 | Elfogadva | 85ms | 18484 KiB | ||||
| 82 | Elfogadva | 79ms | 16436 KiB | ||||
| 83 | Elfogadva | 97ms | 19252 KiB | ||||
| 84 | Elfogadva | 119ms | 27956 KiB | ||||
| 85 | Elfogadva | 86ms | 16180 KiB | ||||
| 86 | Elfogadva | 78ms | 17184 KiB | ||||
| 87 | Elfogadva | 112ms | 18740 KiB | ||||
| 88 | Elfogadva | 114ms | 21552 KiB | ||||
| 89 | Elfogadva | 81ms | 16788 KiB | ||||
| 90 | Elfogadva | 108ms | 18520 KiB | ||||
| 91 | Elfogadva | 115ms | 19764 KiB | ||||
| 92 | Elfogadva | 109ms | 16188 KiB | ||||
| 93 | Elfogadva | 108ms | 19120 KiB | ||||
| 94 | Elfogadva | 112ms | 19612 KiB | ||||
| 95 | Elfogadva | 115ms | 20788 KiB | ||||
| 96 | Elfogadva | 111ms | 14132 KiB | ||||
| 97 | Elfogadva | 108ms | 19252 KiB | ||||
| 98 | Elfogadva | 78ms | 15016 KiB | ||||
| 99 | Elfogadva | 319ms | 29748 KiB | ||||
| 100 | Elfogadva | 395ms | 42492 KiB | ||||
| 101 | Elfogadva | 109ms | 18996 KiB | ||||
| 102 | Elfogadva | 321ms | 34624 KiB | ||||
| 103 | Elfogadva | 365ms | 40132 KiB | ||||
| 104 | Elfogadva | 456ms | 37172 KiB | ||||
| 105 | Elfogadva | 426ms | 34100 KiB | ||||
| 106 | Elfogadva | 465ms | 40172 KiB | ||||
| 107 | Elfogadva | 441ms | 33336 KiB | ||||