이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<cstdio>
int d[1000][1000];
int a[1000][1000];
int qx[1000000];
int qy[1000000];
int qn;
int px[4]={1,-1,0,0};
int py[4]={0,0,1,-1};
int main()
{
int x,y,dest=0;
int i,j,n,m;
scanf("%d%d",&m,&n);
for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%d",&a[i][j]);
for(i=0;i<n;i++)for(j=0;j<m;j++)
{
if(a[i][j]==1)
{
d[i][j]=1;
qx[qn]=i;
qy[qn]=j;
qn++;
}
if(a[i][j]>=0)
dest++;
}
for(i=0;i<qn;i++)
{
x=qx[i];
y=qy[i];
for(j=0;j<4;j++)
{
x+=px[j];
y+=py[j];
if(x>=0&&x<n&&y>=0&&y<m&&a[x][y]==0&&!d[x][y])
{
d[x][y]=d[qx[i]][qy[i]]+1;
qx[qn]=x;
qy[qn]=y;
qn++;
}
x-=px[j];
y-=py[j];
}
}
if(qn<dest)puts("-1");
else printf("%d",d[qx[qn-1]][qy[qn-1]]-1);
}
| # | 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... |
| # | 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... |