Cod sursa(job #832886)
Utilizator | paslaru madalin cristian madalincp | Data | 11 decembrie 2012 17:05:47 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
using namespace std;
int main () {
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n,i,j,sum=0,smax=-(1 << 30),a,b,start=1;
int x;
fin>>n;
for(i=1;i<=n;i++){
fin >> x;
// calculam in sum suma maxima a unei subsecvente care se termina pe pozitia i
// si in start tinem pozitia de inceput a acestei subsecvente
if(x+sum>x)
sum+=x;
else{
sum=x;
start=i;
}
if(sum>smax){
smax=sum;
a=start;
b=i;
}
}
fout<<smax<<' '<<a<<' '<<b<<' '<<endl;
return 0;
}