fork(2) download
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<math.h>
  4. #include<vector>
  5. #include<bits/stdc++.h>
  6. #define ll long long int
  7. #define sif(n) scanf("%d",&n)
  8. #define slf(n) scanf("%lld",&n)
  9. #define pif(n) printf("%d\n",n)
  10. #define plf(n) printf("%lld\n",n)
  11.  
  12. using namespace std;
  13.  
  14. int main(){
  15. int t; sif(t);
  16. while(t--){
  17. int a,b;
  18. sif(a); sif(b);
  19. ll arr[a][b];
  20. for(int i=0;i<a;i++){
  21. for(int j=0;j<b;j++){
  22. slf(arr[i][j]);
  23. }
  24. }
  25. // cout<<endl;
  26. ll min[a][b];
  27. for(int i=0;i<a;i++){
  28. for(int j=0;j<b;j++){
  29. min[i][j]=0;
  30. }
  31. }
  32. min[0][0]= arr[0][0];
  33. for(int i=1;i<a;i++){
  34. min[i][0] = min[i-1][0];
  35. arr[i][0] += arr[i-1][0];
  36. if(min[i][0]>arr[i][0]) min[i][0]=arr[i][0];
  37. }
  38.  
  39. for(int i=1;i<b;i++){
  40. arr[0][i] +=arr[0][i-1];
  41. min[0][i] = min[0][i-1];
  42. if(min[0][i]>arr[0][i]) min[0][i]=arr[0][i];
  43. }
  44.  
  45. for(int i=1;i<a;i++){
  46. for(int j=1;j<b;j++){
  47. ll temp = max(arr[i-1][j],arr[i][j-1]);
  48.  
  49. arr[i][j] += temp;
  50. min[i][j] = max(min[i-1][j],min[i][j-1]);
  51. if(arr[i][j]<min[i][j])
  52. min[i][j] = arr[i][j];
  53.  
  54. }
  55. }
  56. // for(int i=0;i<a;i++)
  57. // for(int j=0;j<b;j++)
  58. // cout<<min[i][j]<<" ";
  59. ll temp = min[a-1][b-1];
  60. // cout<<temp;
  61. if(temp<=0)
  62. temp = 1 - temp;
  63. else
  64. temp =0;
  65. plf(temp);
  66.  
  67. }
  68. }
Runtime error #stdin #stdout 0s 3140KB
stdin
Standard input is empty
stdout
Standard output is empty