fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. long long n,m,k,t;
  5. int a[1009][1009];
  6. int dp[1009][1009];
  7. int f2[1009][1009];
  8. void nhap()
  9. {
  10. memset(dp,0,sizeof(dp));
  11. memset(f2,0,sizeof(f2));
  12. cin>>n>>m>>k;
  13. for(int i=1;i<=n;i++)
  14. {
  15. for(int j=1;j<=m;j++)
  16. {
  17. cin>>a[i][j];
  18. }
  19. }
  20. }
  21. void xuat()
  22. {
  23. for(int i=0;i<=n;i++)
  24. {
  25. f2[i][0]=f2[i][m+1]=INT_MAX;
  26. }
  27. for(int i=1;i<=m;i++)
  28. {
  29. dp[1][i]=a[1][i]+k;
  30. f2[1][i]=a[1][i]+k;
  31. }
  32. for(int i=2;i<=n;i++)
  33. {
  34. for(int j=1;j<=m;j++)
  35. {
  36. dp[i][j]=a[i][j]+max({dp[i-1][j],dp[i-1][j+1],dp[i-1][j-1]});
  37. f2[i][j]=a[i][j]+min({f2[i-1][j-1],f2[i-1][j],f2[i-1][j+1]});
  38. if(a[i][j]==0)
  39. {
  40. dp[i][j]-=dp[i][j]/2;
  41. f2[i][j]-=f2[i][j]/2;
  42. }
  43. }
  44.  
  45. }
  46. cout<<*min_element(f2[n]+1,f2[n]+1+m)<<endl;
  47. cout<<*max_element(dp[n]+1,dp[n]+1+m);
  48. }
  49. int main()
  50. {
  51. ios_base::sync_with_stdio(false);
  52. cin.tie(NULL);
  53. nhap();
  54. xuat();
  55. return 0;
  56. }
  57.  
Success #stdin #stdout 0.01s 12964KB
stdin
Standard input is empty
stdout
2147483647
0