| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1329538 | Muhammad_Aneeq | Kraljica (COCI25_kraljica) | C++20 | 1161 ms | 434164 KiB |
#include <bits/stdc++.h>
using namespace std;
int const N=1e3+10;
int dp[N][N][9]={};
pair<int,int>dr[9]={};
bool vis[N][N][9]={};
inline void solve()
{
int n,m;
cin>>n>>m;
char a[n][m];
int si,sj,ei,ej;
vector<pair<int,int>>ind[10]={};
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
cin>>a[i][j];
if (a[i][j]=='S')
si=i,sj=j;
if (a[i][j]=='E')
ei=i,ej=j;
if (a[i][j]>='0'&&a[i][j]<='9')
{
ind[a[i][j]-'0'].push_back({i,j});
}
for (int k=0;k<9;k++)
dp[i][j][k]=1e9+10;
}
}
int ins=1;
for (int i=-1;i<=1;i++)
{
for (int j=-1;j<=1;j++)
{
if (i==0&&j==0) continue;
dr[ins]={i,j};
ins++;
}
}
dp[si][sj][0]=0;
deque<vector<int>>Q;
Q.push_back({si,sj,0});
while (Q.size())
{
vector<int>f=Q.front();
Q.pop_front();
int i=f[0],j=f[1],k=f[2];
if (vis[i][j][k]) continue;
vis[i][j][k]=1;
for (int l=1;l<=8;l++)
{
int i1=i+dr[l].first,j1=j+dr[l].second;
if (i1<n&&j1<m&&min(i1,j1)>=0&&a[i][j]!='#')
{
if (l==k)
{
if (dp[i1][j1][l]>dp[i][j][k]+(l!=k))
{
dp[i1][j1][l]=dp[i][j][k];
Q.push_front({i1,j1,l});
}
}
else
{
if (dp[i1][j1][l]>dp[i][j][k]+(l!=k))
{
dp[i1][j1][l]=dp[i][j][k]+1;
Q.push_back({i1,j1,l});
}
}
}
}
if (a[i][j]>='1'&&a[i][j]<='9')
{
for (auto [k1,l]:ind[a[i][j]-'0'])
{
if (dp[k1][l][0]>dp[i][j][k])
{
Q.push_front({k1,l,0});
dp[k1][l][0]=dp[i][j][k];
}
}
}
}
int ans=1e9+10;
for (int i=1;i<=8;i++)
{
ans=min(ans,dp[ei][ej][i]);
}
if (ans==1e9+10)
ans=-1;
cout<<ans<<endl;
}
int main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int t=1;
for (int i=1;i<=t;i++)
{
solve();
}
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
