Cod sursa(job #1795697)
| Utilizator | Data | 2 noiembrie 2016 19:56:32 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main()
{
int n,smax,vmax,i,ps,pd,s,st,p,a;
fin>>n;
s=0;
st=1;vmax=-2000000000;smax=-2000000000;
for(i=1;i<=n;i++)
{
fin>>a;
if(a>vmax) {
vmax=a;
p=i;
}
s=s+a;
if(s>=0)
{
if(s>smax) {
smax=s;
ps=st;
pd=i;
}
}
if(s<=0){
s=0;
st=i+1;
}
}
if(smax<0) fout<<vmax<<" "<<p<<" "<<p;
else fout<<smax<<" "<<ps<<" "<<pd;
fin.close();
fout.close();
return 0;
}
