Cod sursa(job #392636)
Utilizator | Data | 7 februarie 2010 22:27:50 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,a,sbi=1,sb=1,se,i,smax=-2000000000,si,sp;
int max(int,int);
int main()
{
fin>>n;
for (i=1;i<=n;i++)
{
fin>>a;
si=max(sp+a,a);
if (sp<0&&si>0) sbi=i;
if (smax<si)
{
smax=si;
se=i;
if (sbi||smax>0) sb=sbi; else sb=se;
}
sp=si;
}
fout<<smax<<' '<<sb<<' '<<se;
fout.close();
return 0;}
int max(int a,int b) {if (a>=b) return a; return b;}