Advertisement
a53

V

a53
Apr 10th, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. #include <fstream>
  2. #include <cstring>
  3. #define Dmax 1501
  4. using namespace std;
  5. int linia1[Dmax],linia2[Dmax],randul1[Dmax],randul2[Dmax];
  6.  
  7. int main()
  8. {
  9. int m,n;
  10. ifstream f("v.in");
  11. f>>m>>n; /// Citesc dimensiunile matricii
  12. int Smax=-2000000010,max_col,max_lin,val;
  13. for(int j=1;j<=n;++j)
  14. f>>linia1[j],randul1[j]=linia1[j]; /// Citesc prima linie si o memorez in linia1 si randul1
  15. for(int i=2;i<=m;++i) /// Incepandcu linia 2
  16. {
  17. for(int j=1;j<=n;++j) /// Citesc toate valorile de pe linia i
  18. {
  19. f>>val;
  20. linia2[j]=linia1[j-1]+val; randul2[j]=randul1[j+1]+val; /// Adaug in coloana j din linia i, valoarea de pe coloana j-1 din linia antrerioara
  21. if((j>=i)&&(j<=n-i+1)&&(linia2[j]+randul2[j]-val>Smax)) /// Daca suma curenta calculata e mai mare decat Smax
  22. Smax=linia2[j]+randul2[j]-val,max_col=j-i+1,max_lin=i; /// Calculez suma maxima, coloana maxima si linia maxima
  23. linia1[j-1]=linia2[j-1]; randul1[j-1]=randul2[j-1]; /// Mut valorile de pr linia si randul curent pe linia si randul anterioare
  24. }
  25. linia1[n]=linia2[n]; randul1[n]=randul2[n]; /// Mut si valorile de pe ultima coloana
  26. }
  27. f.close();
  28. ofstream g("v.out");
  29. g<<Smax<<' '<<max_col<<' '<<max_lin<<'\n'; /// Afisez rezultatul
  30. g.close();
  31. return 0;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement