# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1264931 | yeshwitha | Tracks in the Snow (BOI13_tracks) | C++20 | 277 ms | 93460 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 time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |