Submission #101619

#TimeUsernameProblemLanguageResultExecution timeMemory
101619ShaneOngTracks in the Snow (BOI13_tracks)C++14
100 / 100
1078 ms119328 KiB
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> ii;

int h,w,dist[4009][4009],dx[]={0,1,0,-1},dy[]={1,0,-1,0},ans;
char grid[4009][4009];

int main(){
    scanf("%d%d",&h,&w);
    for(int x=0;x<h;x++)
        scanf("%s",&grid[x]);
    for(int x=0;x<h;x++)
        for(int y=0;y<w;y++)
            dist[x][y]=-1;
    deque<ii> dq;
    dq.push_front(ii(0,0));
    dist[0][0]=0;
    while(!dq.empty()){
        int ux=dq.front().first,uy=dq.front().second;
        dq.pop_front();
        for(int i=0;i<4;i++){
            int vx=ux+dx[i],vy=uy+dy[i];
            if(vx>=0&&vx<h&&vy>=0&&vy<w)
                if(grid[vx][vy]!='.'){
                    int val=(grid[ux][uy]!=grid[vx][vy]);
                    if(dist[vx][vy]==-1){
                        dist[vx][vy]=dist[ux][uy]+val;
                        //printf("%d,%d:%d\n",vx,vy,dist[vx][vy]);
                        ans=max(dist[vx][vy],ans);
                        if(val==0)
                            dq.push_front(ii(vx,vy));
                        else
                            dq.push_back(ii(vx,vy));
                    }
                }
        }
    }
    printf("%d\n",ans+1);
}

Compilation message (stderr)

tracks.cpp: In function 'int main()':
tracks.cpp:11:28: warning: format '%s' expects argument of type 'char*', but argument 2 has type 'char (*)[4009]' [-Wformat=]
         scanf("%s",&grid[x]);
                    ~~~~~~~~^
tracks.cpp:9:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d",&h,&w);
     ~~~~~^~~~~~~~~~~~~~
tracks.cpp:11:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%s",&grid[x]);
         ~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...