Submission #864392

#TimeUsernameProblemLanguageResultExecution timeMemory
864392gutzzyPohlepko (COCI16_pohlepko)C++14
40 / 80
86 ms65536 KiB
#include <bits/stdc++.h>
using namespace std;

int n;
int m;
string ans;
vector<vector<char>> board;
vector<vector<string>> dp;

string calc(int i, int j){
    if(dp[i][j]!="-1") return dp[i][j];
    dp[i][j] = board[i][j] + min(calc(i+1,j),calc(i,j+1));
    return dp[i][j];
}

int main()
{
    cin >> n >> m;
    board = vector<vector<char>>(n,vector<char>(m));
    dp = vector<vector<string>>(n,vector<string>(m, "-1"));


    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin >> board[i][j];
        }
    }  
    
    dp[n-1][m-1] = board[n-1][m-1];
    
    string s = "";
    for(int j=m-1;j>=0;j--){
        s=board[n-1][j]+s;
        dp[n-1][j] = s;
    }
    
    s = "";
    for(int i=n-1;i>=0;i--){
        s=board[i][m-1]+s;
        dp[i][m-1] = s;
    }
    
    cout << calc(0,0) << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...