답안 #63730

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
63730 2018-08-02T14:47:13 Z Bodo171 Tracks in the Snow (BOI13_tracks) C++14
91.25 / 100
2000 ms 91380 KB
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
const int nmax=4005;
int d[nmax][nmax];
//pair<int,int> q[2][nmax*nmax];
string s[nmax];
int p[2],u[2];
bool E[nmax][nmax];
int use,mx,i,j,dd,n,m,li,ci,lf,cf,di;
int d1[]={-1,0,1,0};
int d2[]={0,-1,0,1};
void dij(int L,int C)
{

    queue< pair<int,int> > q[2];
    q[0].push({L,C});
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
           d[i][j]=n*m+1;
    d[L][C]=0;
    for(i=0;i<=n*m;i++)
    {
        if(q[use].empty())
            return;
        mx=max(mx,i);
        while(!q[use].empty())
        {
             li=q[use].front().first;ci=q[use].front().second;q[use].pop();
             if(i==d[li][ci])
              for(di=0;di<4;di++)
              {
                  lf=li+d1[di];cf=ci+d2[di];
                  if(lf>=1&&cf>=1&&lf<=n&&cf<=m&&(s[lf][cf-1]=='R'||s[lf][cf-1]=='F'))
                  {
                      dd=d[li][ci]+(s[li][ci-1]!=s[lf][cf-1]);
                      if(dd<d[lf][cf])
                      {
                          d[lf][cf]=dd;
                          q[(dd&1)].push({lf,cf});
                      }
                  }
              }
        }
        p[use]=1;u[use]=0;
        use=1-use;
    }
}
int main()
{
   // freopen("data.in","r",stdin);
    ios_base::sync_with_stdio(false);
    cin>>n>>m;getline(cin,s[0]);
    for(i=1;i<=n;i++)
    {
        getline(cin,s[i]);
    }
    dij(1,1);
    cout<<mx+1;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 34 ms 3704 KB Output is correct
2 Correct 3 ms 3704 KB Output is correct
3 Correct 3 ms 3704 KB Output is correct
4 Correct 18 ms 3704 KB Output is correct
5 Correct 9 ms 3704 KB Output is correct
6 Correct 3 ms 3704 KB Output is correct
7 Correct 4 ms 3704 KB Output is correct
8 Correct 3 ms 3704 KB Output is correct
9 Correct 3 ms 3704 KB Output is correct
10 Correct 8 ms 3704 KB Output is correct
11 Correct 7 ms 3704 KB Output is correct
12 Correct 13 ms 3704 KB Output is correct
13 Correct 7 ms 3704 KB Output is correct
14 Correct 5 ms 3704 KB Output is correct
15 Correct 23 ms 3944 KB Output is correct
16 Correct 33 ms 3944 KB Output is correct
17 Correct 23 ms 3944 KB Output is correct
18 Correct 22 ms 3944 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 19 ms 16236 KB Output is correct
2 Correct 82 ms 16236 KB Output is correct
3 Correct 373 ms 81132 KB Output is correct
4 Correct 107 ms 81132 KB Output is correct
5 Correct 274 ms 81132 KB Output is correct
6 Execution timed out 2051 ms 91380 KB Time limit exceeded
7 Correct 15 ms 91380 KB Output is correct
8 Correct 17 ms 91380 KB Output is correct
9 Correct 7 ms 91380 KB Output is correct
10 Correct 4 ms 91380 KB Output is correct
11 Correct 19 ms 91380 KB Output is correct
12 Correct 3 ms 91380 KB Output is correct
13 Correct 99 ms 91380 KB Output is correct
14 Correct 58 ms 91380 KB Output is correct
15 Correct 48 ms 91380 KB Output is correct
16 Correct 49 ms 91380 KB Output is correct
17 Correct 244 ms 91380 KB Output is correct
18 Correct 179 ms 91380 KB Output is correct
19 Correct 106 ms 91380 KB Output is correct
20 Correct 119 ms 91380 KB Output is correct
21 Correct 238 ms 91380 KB Output is correct
22 Correct 253 ms 91380 KB Output is correct
23 Correct 431 ms 91380 KB Output is correct
24 Correct 237 ms 91380 KB Output is correct
25 Correct 745 ms 91380 KB Output is correct
26 Correct 1258 ms 91380 KB Output is correct
27 Correct 1761 ms 91380 KB Output is correct
28 Execution timed out 2076 ms 91380 KB Time limit exceeded
29 Execution timed out 2053 ms 91380 KB Time limit exceeded
30 Execution timed out 2050 ms 91380 KB Time limit exceeded
31 Correct 1657 ms 91380 KB Output is correct
32 Correct 1388 ms 91380 KB Output is correct