Submission

Status:
[-SSSSSSSSSSSSSS]

Score: 0

User: devilpoohs

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-03-30 15:00:23

#include<bits/stdc++.h>
using namespace std;
int n,m;
int maxi=INT_MIN;
void think(int i,int j,int sum,int mini,vector<vector<int>>& ar){
    if(i==n-1 and j==m-1){
        maxi=max(mini,maxi);
        return ;
    }
    if(i+1<n){
        think(i+1,j,sum+ar[i+1][j],min(mini,sum+ar[i+1][j]),ar);
    }
        
    if(j+1<m){
        think(i,j+1,sum+ar[i][j+1],min(mini,sum+ar[i][j+1]),ar);
    }   
        
        
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    cin>>n>>m;
    vector<vector<int>> ar(n,vector<int>(m));
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>ar[i][j];
        }
    }
    think(0,0,ar[0][0],ar[0][0],ar);
    cout<<maxi;
}
/*

 4 3
 -3 -6 -3 
 2 2 -3
 -8-8-8
 1 1 1

 2 3
 -3 -6 -3
 2 2 -3
*/