Advertisement
a53

cladire2

a53
Oct 18th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. #include <fstream>
  2. #define Nmax 201
  3. using namespace std;
  4. ifstream f("cladire2.in");
  5. ofstream g("cladire2.out");
  6. int n,m,a[Nmax][Nmax],s[Nmax][Nmax];
  7.  
  8. int main()
  9. {
  10. f>>n>>m;
  11. for(int i=1;i<=n;++i)
  12. for(int j=1;j<=m;++j)
  13. f>>a[i][j];
  14. s[1][1]=a[1][1];
  15. for(int i=2;i<=n;++i)
  16. s[i][1]=s[i-1][1]+a[i][1];
  17. for(int j=2;j<=m;++j)
  18. s[1][j]=s[1][j-1]+a[1][j];
  19. for(int i=2;i<=n;++i)
  20. for(int j=2;j<=m;++j)
  21. if(s[i-1][j]>s[i][j-1])
  22. s[i][j]=s[i-1][j]+a[i][j];
  23. else
  24. s[i][j]=s[i][j-1]+a[i][j];
  25. g<<s[n][m]<<'\n';
  26. int L[2*Nmax],C[2*Nmax],p =n+m-1;
  27. L[p]=n,C[p]=m;
  28. for(;p>1;--p)
  29. {
  30. int i=L[p],j=C[p];
  31. if(s[i][j]==a[i][j]+s[i-1][j])
  32. L[p-1]=i-1,C[p-1]=j;
  33. else
  34. L[p-1]=i,C[p-1]=j-1;
  35. }
  36. for(p=1;p<=n+m-1;++p)
  37. g<<L[p]<<' '<<C[p]<<'\n';
  38. return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement