Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <cstring>
- #define Dmax 1501
- using namespace std;
- int linia1[Dmax],linia2[Dmax],randul1[Dmax],randul2[Dmax];
- int main()
- {
- int m,n;
- ifstream f("v.in");
- f>>m>>n; /// Citesc dimensiunile matricii
- int Smax=-2000000010,max_col,max_lin,val;
- for(int j=1;j<=n;++j)
- f>>linia1[j],randul1[j]=linia1[j]; /// Citesc prima linie si o memorez in linia1 si randul1
- for(int i=2;i<=m;++i) /// Incepandcu linia 2
- {
- for(int j=1;j<=n;++j) /// Citesc toate valorile de pe linia i
- {
- f>>val;
- 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
- if((j>=i)&&(j<=n-i+1)&&(linia2[j]+randul2[j]-val>Smax)) /// Daca suma curenta calculata e mai mare decat Smax
- Smax=linia2[j]+randul2[j]-val,max_col=j-i+1,max_lin=i; /// Calculez suma maxima, coloana maxima si linia maxima
- 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
- }
- linia1[n]=linia2[n]; randul1[n]=randul2[n]; /// Mut si valorile de pe ultima coloana
- }
- f.close();
- ofstream g("v.out");
- g<<Smax<<' '<<max_col<<' '<<max_lin<<'\n'; /// Afisez rezultatul
- g.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement