Nu aveti permisiuni pentru a descarca fisierul grader_test10.ok
Cod sursa(job #2262635)
Utilizator | Ignat Alex Xutzu358 | Data | 17 octombrie 2018 17:35:10 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 20 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.93 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main()
{
int a=1,b,sum=0,x,apr,bpr,sumpr,i,n,maxx=-999999,xmax=-999999,aa,bb;
fin >> n;
for (i=1;i<=n;i++) {
fin >> x;
sum=sum+x;
if (sum>maxx) {
maxx =sum;
b=i;
}
if (sum < 0 && b!=0) {
sumpr=sum-x;
sum = 0;
bpr=b;
b=0;
apr = a;
a=i+1;
}
if (xmax<x) {
xmax = x;
aa=i;
bb=i;
}
}
if (xmax < 0 ) {
fout << xmax << " "<< aa << " "<< bb;
}
else if (b==0) {
fout <<maxx << " "<<apr << " "<<bpr;
}
else {
fout << maxx << " "<< a << " "<< b;
}
fin.close();
fout.close();
return 0;
}