| 26628 | 2026-04-04 11:09:35 | Kristóf | Legközelebbi mezők | cpp17 | Elfogadva 100/100 | 536ms | 26164 KiB |
#include <iostream>
#include <vector>
#include <queue>
#include <map>
#include <climits>
#include <algorithm>
using namespace std;
bool lehet(pair<int,int> pos,vector<vector<char>> &adj,int &n,int &m)
{
if(pos.first<0 || pos.first>=n || pos.second<0 || pos.second>=m)return false;
return true;
}
int main()
{
int n,m;
cin>>n>>m;
vector<vector<char>> adj(n,vector<char> (m));
pair<int,int> posA,posB;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>adj[i][j];
if(adj[i][j]=='A')posA={i,j};
if(adj[i][j]=='B')posB={i,j};
}
}
queue<pair<int,int>> q;
q.push(posA);
vector<vector<bool>> vis(n,vector<bool> (m,false));
vis[posA.first][posA.second]=true;
queue<pair<int,int>> q2;
vector<vector<int>> dist(n,vector<int> (m,INT_MAX));
vector<vector<bool>> vis2(n,vector<bool> (m,false));
while(q.size())
{
dist[q.front().first][q.front().second]=0;
q2.push(q.front());
vis2[q.front().first][q.front().second]=true;
auto [x,y]=q.front();q.pop();
if(x==posB.first && y==posB.second)
{
cout<<0;
return 0;
}
if(lehet({x-1,y},adj,n,m) && adj[x-1][y]!='#' && !vis[x-1][y])
{
vis[x-1][y]=true;
q.push({x-1,y});
}
if(lehet({x+1,y},adj,n,m) && adj[x+1][y]!='#' &&!vis[x+1][y] )
{
vis[x+1][y]=true;
q.push({x+1,y});
}
if(lehet({x,y-1},adj,n,m) && adj[x][y-1]!='#' && !vis[x][y-1] )
{
vis[x][y-1]=true;
q.push({x,y-1});
}
if(lehet({x,y+1},adj,n,m) &&!vis[x][y+1] && adj[x][y+1]!='#')
{
vis[x][y+1]=true;
q.push({x,y+1});
}
}
while(q2.size())
{
auto [x,y]=q2.front();q2.pop();
if( lehet({x-1,y},adj,n,m) && !vis2[x-1][y] )
{
vis2[x-1][y]=true;
q2.push({x-1,y});
dist[x-1][y]=min(dist[x-1][y],dist[x][y]+1);
}
if(lehet({x+1,y},adj,n,m) &&!vis2[x+1][y] )
{
vis2[x+1][y]=true;
q2.push({x+1,y});
dist[x+1][y]=min(dist[x+1][y],dist[x][y]+1);
}
if(lehet({x,y-1},adj,n,m)&&!vis2[x][y-1] )
{
vis2[x][y-1]=true;
q2.push({x,y-1});
dist[x][y-1]=min(dist[x][y-1],dist[x][y]+1);
}
if(lehet({x,y+1},adj,n,m) && !vis2[x][y+1] )
{
vis2[x][y+1]=true;
q2.push({x,y+1});
dist[x][y+1]=min(dist[x][y+1],dist[x][y]+1);
}
}
int ans=dist[posB.first][posB.second];
while(q.size())q.pop();
fill(vis.begin(),vis.end(),vector<bool> (m,false));
q.push(posB);
vis[posB.first][posB.second]=true;
while(q.size())
{
auto [x,y]=q.front();q.pop();
if(lehet({x-1,y},adj,n,m)&& !vis[x-1][y] && adj[x-1][y]!='#')
{
vis[x-1][y]=true;
q.push({x-1,y});
ans=min(ans,dist[x-1][y]);
}
if(lehet({x+1,y},adj,n,m) && !vis[x+1][y] && adj[x+1][y]!='#')
{
vis[x+1][y]=true;
q.push({x+1,y});
ans=min(ans,dist[x+1][y]);
}
if(lehet({x,y-1},adj,n,m) && !vis[x][y-1] && adj[x][y-1]!='#')
{
vis[x][y-1]=true;
q.push({x,y-1});
ans=min(ans,dist[x][y-1]);
}
if(lehet({x,y+1},adj,n,m) && !vis[x][y+1] && adj[x][y+1]!='#')
{
vis[x][y+1]=true;
q.push({x,y+1});
ans=min(ans,dist[x][y+1]);
}
}
cout<<ans;
return 0;
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Elfogadva | 1ms | 316 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 | 2ms | 316 KiB | ||||
| 8 | Elfogadva | 2ms | 316 KiB | ||||
| 9 | Elfogadva | 2ms | 316 KiB | ||||
| 10 | Elfogadva | 2ms | 316 KiB | ||||
| 11 | Elfogadva | 2ms | 316 KiB | ||||
| 12 | Elfogadva | 1ms | 380 KiB | ||||
| 13 | Elfogadva | 2ms | 316 KiB | ||||
| 14 | Elfogadva | 2ms | 316 KiB | ||||
| subtask3 | 20/20 | ||||||
| 15 | Elfogadva | 19ms | 1572 KiB | ||||
| 16 | Elfogadva | 14ms | 1644 KiB | ||||
| 17 | Elfogadva | 156ms | 13944 KiB | ||||
| 18 | Elfogadva | 96ms | 8156 KiB | ||||
| 19 | Elfogadva | 14ms | 1380 KiB | ||||
| 20 | Elfogadva | 24ms | 1940 KiB | ||||
| 21 | Elfogadva | 23ms | 1592 KiB | ||||
| 22 | Elfogadva | 133ms | 10804 KiB | ||||
| 23 | Elfogadva | 23ms | 1588 KiB | ||||
| 24 | Elfogadva | 245ms | 12084 KiB | ||||
| subtask4 | 20/20 | ||||||
| 25 | Elfogadva | 1ms | 316 KiB | ||||
| 26 | Elfogadva | 1ms | 316 KiB | ||||
| 27 | Elfogadva | 1ms | 508 KiB | ||||
| 28 | Elfogadva | 97ms | 5172 KiB | ||||
| 29 | Elfogadva | 90ms | 4916 KiB | ||||
| 30 | Elfogadva | 79ms | 4216 KiB | ||||
| 31 | Elfogadva | 90ms | 4916 KiB | ||||
| 32 | Elfogadva | 71ms | 3912 KiB | ||||
| 33 | Elfogadva | 97ms | 5428 KiB | ||||
| 34 | Elfogadva | 104ms | 5488 KiB | ||||
| 35 | Elfogadva | 71ms | 3932 KiB | ||||
| 36 | Elfogadva | 97ms | 5172 KiB | ||||
| 37 | Elfogadva | 97ms | 5440 KiB | ||||
| 38 | Elfogadva | 185ms | 9596 KiB | ||||
| 39 | Elfogadva | 432ms | 21304 KiB | ||||
| 40 | Elfogadva | 460ms | 21300 KiB | ||||
| 41 | Elfogadva | 453ms | 21300 KiB | ||||
| 42 | Elfogadva | 435ms | 21292 KiB | ||||
| subtask5 | 50/50 | ||||||
| 43 | Elfogadva | 1ms | 316 KiB | ||||
| 44 | Elfogadva | 1ms | 316 KiB | ||||
| 45 | Elfogadva | 1ms | 508 KiB | ||||
| 46 | Elfogadva | 2ms | 316 KiB | ||||
| 47 | Elfogadva | 2ms | 316 KiB | ||||
| 48 | Elfogadva | 2ms | 316 KiB | ||||
| 49 | Elfogadva | 2ms | 316 KiB | ||||
| 50 | Elfogadva | 2ms | 316 KiB | ||||
| 51 | Elfogadva | 1ms | 380 KiB | ||||
| 52 | Elfogadva | 2ms | 316 KiB | ||||
| 53 | Elfogadva | 2ms | 316 KiB | ||||
| 54 | Elfogadva | 19ms | 1572 KiB | ||||
| 55 | Elfogadva | 14ms | 1644 KiB | ||||
| 56 | Elfogadva | 156ms | 13944 KiB | ||||
| 57 | Elfogadva | 96ms | 8156 KiB | ||||
| 58 | Elfogadva | 14ms | 1380 KiB | ||||
| 59 | Elfogadva | 24ms | 1940 KiB | ||||
| 60 | Elfogadva | 23ms | 1592 KiB | ||||
| 61 | Elfogadva | 133ms | 10804 KiB | ||||
| 62 | Elfogadva | 23ms | 1588 KiB | ||||
| 63 | Elfogadva | 245ms | 12084 KiB | ||||
| 64 | Elfogadva | 97ms | 5172 KiB | ||||
| 65 | Elfogadva | 90ms | 4916 KiB | ||||
| 66 | Elfogadva | 79ms | 4216 KiB | ||||
| 67 | Elfogadva | 90ms | 4916 KiB | ||||
| 68 | Elfogadva | 71ms | 3912 KiB | ||||
| 69 | Elfogadva | 97ms | 5428 KiB | ||||
| 70 | Elfogadva | 104ms | 5488 KiB | ||||
| 71 | Elfogadva | 71ms | 3932 KiB | ||||
| 72 | Elfogadva | 97ms | 5172 KiB | ||||
| 73 | Elfogadva | 97ms | 5440 KiB | ||||
| 74 | Elfogadva | 185ms | 9596 KiB | ||||
| 75 | Elfogadva | 432ms | 21304 KiB | ||||
| 76 | Elfogadva | 460ms | 21300 KiB | ||||
| 77 | Elfogadva | 453ms | 21300 KiB | ||||
| 78 | Elfogadva | 435ms | 21292 KiB | ||||
| 79 | Elfogadva | 105ms | 5956 KiB | ||||
| 80 | Elfogadva | 107ms | 5688 KiB | ||||
| 81 | Elfogadva | 81ms | 4916 KiB | ||||
| 82 | Elfogadva | 75ms | 4404 KiB | ||||
| 83 | Elfogadva | 96ms | 5352 KiB | ||||
| 84 | Elfogadva | 115ms | 6964 KiB | ||||
| 85 | Elfogadva | 83ms | 4660 KiB | ||||
| 86 | Elfogadva | 70ms | 4220 KiB | ||||
| 87 | Elfogadva | 109ms | 5940 KiB | ||||
| 88 | Elfogadva | 108ms | 6436 KiB | ||||
| 89 | Elfogadva | 79ms | 4516 KiB | ||||
| 90 | Elfogadva | 112ms | 6424 KiB | ||||
| 91 | Elfogadva | 126ms | 6960 KiB | ||||
| 92 | Elfogadva | 103ms | 5684 KiB | ||||
| 93 | Elfogadva | 109ms | 5940 KiB | ||||
| 94 | Elfogadva | 119ms | 6720 KiB | ||||
| 95 | Elfogadva | 64ms | 5684 KiB | ||||
| 96 | Elfogadva | 112ms | 5776 KiB | ||||
| 97 | Elfogadva | 111ms | 6452 KiB | ||||
| 98 | Elfogadva | 75ms | 4416 KiB | ||||
| 99 | Elfogadva | 354ms | 17972 KiB | ||||
| 100 | Elfogadva | 405ms | 21652 KiB | ||||
| 101 | Elfogadva | 112ms | 5940 KiB | ||||
| 102 | Elfogadva | 365ms | 19764 KiB | ||||
| 103 | Elfogadva | 230ms | 20788 KiB | ||||
| 104 | Elfogadva | 510ms | 25128 KiB | ||||
| 105 | Elfogadva | 481ms | 23840 KiB | ||||
| 106 | Elfogadva | 536ms | 26164 KiB | ||||
| 107 | Elfogadva | 503ms | 23348 KiB | ||||