Cod sursa(job #1666367)
| Utilizator | Data | 27 martie 2016 23:24:14 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.77 kb |
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n, smax, imax, jmax, negmax, negimax;
int main(){
int i,s,p,x;
fin>>n;
smax=-2000000000;
negmax=0;
p=1;
s=0;
for(i=1;i<=n;i++){
fin>>x;
if(x<0 && x>negmax){
negmax=x;
negimax=i;
}
s=s+x;
if(s<0){
p=i+1;
s=0;
}
else{
if(s<smax){
smax=s;
imax=p;
jmax=i;
}
}
}
if(smax<0){
fout<<negmax<<" "<<negimax<<" "<<negimax;
}
else{
fout<<smax<<" "<<imax<<" "<<jmax;
}
fout.close();
fin.close();
return 0;
}
