Submission

Status:

Compilation Error

Subtask/Task Score:

Score: 0

User: Quaoar

Problemset: อัศวินขี่ม้าขาว

Language: cpp

Time: 0.000 second

Submitted On: 2026-01-01 14:26:35

#include <iostream>
#include <algorithm>
using namespace std;

int n , m;
int map[1001][1001];
int dp[1001][1001];
bool visited[1001][1001];


int dfs(int x , int y){
    if (x >= n || y >= m) return INT_MAX;

    if (x == n - 1 && y == m - 1){
        return max(1, 1 - map[x][y]);
    }

    //memo
    if (visited[x][y]) return dp[x][y];
    visited[x][y] = true;

    int r = dfs(x , y + 1);
    int d = dfs(x + 1 , y);

    int hp = min(d , r) - map[x][y];

    dp[x][y] = max(hp, 1);

    return dp[x][y];
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    cin >> n >> m;
    for (int i = 0 ; i < n ; i++){
        for (int j = 0 ; j < m ; j++){
            cin >> map[i][j];
        }
    }

    cout << dfs(0,0);
}