Submission #101416

#TimeUsernameProblemLanguageResultExecution timeMemory
101416SomeoneUnknownTracks in the Snow (BOI13_tracks)C++14
80.31 / 100
2071 ms213316 KiB
#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> ii;
typedef pair<int, ii> iii;

ii mii(int b, int c){
    return make_pair(b,c);
}

iii miii(int a, int b, int c){
    return make_pair(a, mii(b,c));
}

int main(){
    //ios_base::sync_with_stdio(false);
    int r, c;
    //cin >> r >> c;
    scanf("%d %d", &r, &c);
    //string m[r];
    char m[r][c+2];
    for(int i = 0; i < r; i++){
        //cin >> m[i];
        //cout << "read";
        scanf("%s", &m[i]);
    }
    priority_queue<iii> vable;
    vable.push(miii(-1, 0, 0));
    vable.push(miii(-1, r-1, c-1));
    int most = 0;
    while(!vable.empty()){
        iii ving = vable.top();
        vable.pop();
        int y = ving.second.first;
        int x = ving.second.second;
        if(m[y][x] == '.') continue;
        int a = ving.first;
        most = max(most, -a);
        if(y != r-1){
            vable.push(miii(a-(m[y][x]!=m[y+1][x]), y+1, x));
        }
        if(x != c-1){
            vable.push(miii(a-(m[y][x]!=m[y][x+1]), y, x+1));
        }
        if(y != 0){
            vable.push(miii(a-(m[y][x]!=m[y-1][x]), y-1, x));
        }
        if(x != 0){
            vable.push(miii(a-(m[y][x]!=m[y][x-1]), y, x-1));
        }
        m[y][x] = '.';
    }
    cout << most;//*/
}
/*
5 8
FFRF....
.FRRR...
.FFFFF..
..RRRFFR
.....FFF
*/

Compilation message (stderr)

tracks.cpp: In function 'int main()':
tracks.cpp:25:26: warning: format '%s' expects argument of type 'char*', but argument 2 has type 'char (*)[(c + 2)]' [-Wformat=]
         scanf("%s", &m[i]);
                     ~~~~~^
tracks.cpp:19:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d", &r, &c);
     ~~~~~^~~~~~~~~~~~~~~~~
tracks.cpp:25:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%s", &m[i]);
         ~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...