Submission #243460

#TimeUsernameProblemLanguageResultExecution timeMemory
243460N1NT3NDOPohlepko (COCI16_pohlepko)C++14
5 / 80
94 ms20344 KiB
#include <bits/stdc++.h> #define ll long long #define F first #define S second #define pb push_back using namespace std; short n,m; string s; char c[2001][2001]; pair<short,short> dp[2001][2001]; void Rec(short i,short j) { s+=c[i][j]; if (i==0 && j==0) return; else Rec(dp[i][j].F,dp[i][j].S); } int main() { //freopen("input.txt","r",stdin); //freopen("output.txt","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for(short i=0;i<n;i++) for(short j=0;j<m;j++) cin >> c[i][j]; dp[0][0]={0,0}; for(short i=0;i<n;i++) for(short j=0;j<m;j++) if (i-1>=0 && j-1>=0) { if (c[i][j]+c[i-1][j]<c[i][j]+c[i][j-1]) dp[i][j]={i-1,j}; else dp[i][j]={i,j-1}; } else if (i-1>=0 && j-1<0) dp[i][j]={i-1,j}; else if (i-1<0 && j-1>=0) dp[i][j]={i,j-1}; s+=c[n-1][m-1]; Rec(dp[n-1][m-1].F,dp[n-1][m-1].S); reverse(s.begin(),s.end()); cout << s; }
#Verdict Execution timeMemoryGrader output
Fetching results...