Submission #1264931

#TimeUsernameProblemLanguageResultExecution timeMemory
1264931yeshwithaTracks in the Snow (BOI13_tracks)C++20
0 / 100
277 ms93460 KiB
#include <bits/stdc++.h>

using namespace std;
int main() {
        int h, w;
        cin >> h >> w;
        vector < string > grid(h);
        for (int i = 0; i < h; i++)
                cin >> grid[i];
        vector < vector < int >> dp(h, vector < int > (w, 1e9));
        dp[0][0] = 1;
        for (int i = 0; i < h; i++) {
                for (int j = 0; j < w; j++) {
                        if (i == 0 && j == 0) continue;
                        if (grid[i][j] != '.') {
                                if (i > 0) {
                                        if (grid[i][j] == grid[i - 1][j])
                                                dp[i][j] = min(dp[i][j], dp[i - 1][j]);
                                        else
                                                dp[i][j] = min(dp[i][j], dp[i - 1][j] + 1);
                                }
                                if (j > 0) {
                                        if (grid[i][j] == grid[i][j - 1])
                                                dp[i][j] = min(dp[i][j], dp[i][j - 1]);
                                        else
                                                dp[i][j] = min(dp[i][j], dp[i][j - 1] + 1);
                                }
                                else {
                                        if (i > 0)
                                                dp[i][j] = min(dp[i][j], dp[i - 1][j]);
                                        if (j > 0)
                                                dp[i][j] = min(dp[i][j], dp[i][j - 1]);
                                }
                        }
                }
        }
        cout << dp[h - 1][w - 1] + 1 << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...