Submission #1273986

#TimeUsernameProblemLanguageResultExecution timeMemory
1273986hasanfaqatTracks in the Snow (BOI13_tracks)C++20
2.19 / 100
729 ms112072 KiB
#include<bits/stdc++.h> using namespace std; int H, W; vector<string> snow; bool inside(int y, int x){ return (y >= 0 && y < H && x >= 0 && x < W && snow[y][x] != '.'); } int main(){ int mx[4] = {-1, 1, 0, 0}; int my[4] = {0, 0, 1, -1}; cin>>H>>W; snow.resize(H); for(int i = 0; i < H; i++) cin>>snow[i]; vector<vector<int>> dist(H, vector<int>(W, 0)); int ans = 1; deque<pair<int,int>> curr; dist[0][0] = 1; curr.push_front({0,0}); while(!curr.empty()){ auto [curry, currx] = curr.front(); curr.pop_front(); for(int i = 0; i < 4; i++){ int x = currx + mx[i], y = curry + my[i]; if(!inside(y,x)) continue; if(dist[y][x] == 0){ if(snow[y][x] != snow[curry][currx]){ curr.push_back({y,x}); dist[y][x] = dist[curry][currx] + 1; }else{ curr.push_front({y,x}); dist[y][x] = dist[curry][currx]; } } } } cout<<dist[H-1][W-1]<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...