#include<bits/stdc++.h>
using namespace std;
int dx[]={-1,0,1,0},dy[]={0,1,0,-1},dp[50][505][505],cost[10][10],n,m;
const int inf=1e9;
vector<array<int,2>>b[2250005];
array<int,2>nex[505][505][5],cost2[50];
string s[505];
array<int,2>dfs(int x,int y,int dir)
{
if (nex[x][y][dir][0]==-1){
nex[x][y][dir][0]=-2;
int auxi=dir;
if (s[x][y]=='C')
auxi=(dir+1)%4;
if (s[x][y]=='A')
auxi=(dir+3)%4;
int x2,y2;
x2=x+dx[auxi];
y2=y+dy[auxi];
if (x2<0 || x2>=n || y2<0 || y2>=m || s[x2][y2]=='x')
nex[x][y][dir]=(array<int,2>){x,y};
else
nex[x][y][dir]=dfs(x2,y2,auxi);
}
return nex[x][y][dir];
}
void path(int aux[505][505],int x,int y,int dir)
{
if (dir<2250000 && aux[x][y]>dir){
aux[x][y]=dir;
b[dir].push_back((array<int,2>){x,y});
}
}
void bfs(int aux[505][505])
{
int i,dir;
for(i=0;i<2250000;i++)
for(auto it:b[i]){
for(dir=0;dir<4;dir++){
array<int,2>auxi=nex[it[0]][it[1]][dir];
path(aux,auxi[0],auxi[1],i+1);
}
b[i].clear();
}
}
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
int cnt,i,j,dir,k;
scanf("%d%d%d\n",&cnt,&m,&n);
for(i=0;i<n;i++)
cin>>s[i];
memset(nex,-1,sizeof(nex));
for(i=0;i<n;i++)
for(j=0;j<m;j++)
for(dir=0;dir<4;dir++)
dfs(i,j,dir);
memset(dp,0x3f,sizeof(dp));
int ind=0,i2,j2;
for(i=0;i<cnt;i++)
for(j=i;j>=0;j--){
cost[j][i]=ind;
cost2[ind]=(array<int,2>){j,i};
if (j<i){
for(i2=0;i2<n;i2++)
for(j2=0;j2<m;j2++)
for(k=j;k<i;k++)
path(dp[ind],i2,j2,dp[cost[j][k]][i2][j2]+dp[cost[k+1][i]][i2][j2]);
}
else{
for(i2=0;i2<n;i2++)
for(j2=0;j2<m;j2++)
if (s[i2][j2]-48==j+1)
path(dp[ind],i2,j2,0);
}
bfs(dp[ind]);
ind++;
}
int ans=inf;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
ans=min(ans,dp[cost[0][cnt-1]][i][j]);
if (ans==inf)
printf("-1\n");
else
printf("%d\n",ans);
return 0;
}
Compilation message
robots.cpp: In function 'int main()':
robots.cpp:51:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
51 | scanf("%d%d%d\n",&cnt,&m,&n);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
84 ms |
113004 KB |
Output is correct |
2 |
Correct |
83 ms |
113132 KB |
Output is correct |
3 |
Correct |
82 ms |
113004 KB |
Output is correct |
4 |
Correct |
83 ms |
113132 KB |
Output is correct |
5 |
Correct |
83 ms |
113004 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
84 ms |
113004 KB |
Output is correct |
2 |
Correct |
83 ms |
113132 KB |
Output is correct |
3 |
Correct |
82 ms |
113004 KB |
Output is correct |
4 |
Correct |
83 ms |
113132 KB |
Output is correct |
5 |
Correct |
83 ms |
113004 KB |
Output is correct |
6 |
Correct |
92 ms |
113028 KB |
Output is correct |
7 |
Correct |
83 ms |
113096 KB |
Output is correct |
8 |
Correct |
86 ms |
113004 KB |
Output is correct |
9 |
Correct |
85 ms |
113004 KB |
Output is correct |
10 |
Correct |
85 ms |
113116 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
84 ms |
113004 KB |
Output is correct |
2 |
Correct |
83 ms |
113132 KB |
Output is correct |
3 |
Correct |
82 ms |
113004 KB |
Output is correct |
4 |
Correct |
83 ms |
113132 KB |
Output is correct |
5 |
Correct |
83 ms |
113004 KB |
Output is correct |
6 |
Correct |
92 ms |
113028 KB |
Output is correct |
7 |
Correct |
83 ms |
113096 KB |
Output is correct |
8 |
Correct |
86 ms |
113004 KB |
Output is correct |
9 |
Correct |
85 ms |
113004 KB |
Output is correct |
10 |
Correct |
85 ms |
113116 KB |
Output is correct |
11 |
Correct |
372 ms |
118124 KB |
Output is correct |
12 |
Correct |
83 ms |
113900 KB |
Output is correct |
13 |
Correct |
227 ms |
113388 KB |
Output is correct |
14 |
Correct |
516 ms |
125420 KB |
Output is correct |
15 |
Correct |
338 ms |
114796 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
84 ms |
113004 KB |
Output is correct |
2 |
Correct |
83 ms |
113132 KB |
Output is correct |
3 |
Correct |
82 ms |
113004 KB |
Output is correct |
4 |
Correct |
83 ms |
113132 KB |
Output is correct |
5 |
Correct |
83 ms |
113004 KB |
Output is correct |
6 |
Correct |
92 ms |
113028 KB |
Output is correct |
7 |
Correct |
83 ms |
113096 KB |
Output is correct |
8 |
Correct |
86 ms |
113004 KB |
Output is correct |
9 |
Correct |
85 ms |
113004 KB |
Output is correct |
10 |
Correct |
85 ms |
113116 KB |
Output is correct |
11 |
Correct |
372 ms |
118124 KB |
Output is correct |
12 |
Correct |
83 ms |
113900 KB |
Output is correct |
13 |
Correct |
227 ms |
113388 KB |
Output is correct |
14 |
Correct |
516 ms |
125420 KB |
Output is correct |
15 |
Correct |
338 ms |
114796 KB |
Output is correct |
16 |
Correct |
380 ms |
113964 KB |
Output is correct |
17 |
Correct |
1012 ms |
156564 KB |
Output is correct |
18 |
Correct |
418 ms |
118116 KB |
Output is correct |
19 |
Correct |
387 ms |
113924 KB |
Output is correct |
20 |
Correct |
648 ms |
131128 KB |
Output is correct |