Cod sursa(job #1100362)
Utilizator | Data | 6 februarie 2014 20:30:42 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.71 kb |
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ifstream fin("asd.in");
ofstream fout("asd.out");
int n,sum[100],v[100],min,bestSum,best[100];
fin>>n;
for(int i=1;i<=n;++i)
fin>>v[i];
sum[0]=0;
for(int i=1;i<=n;i++)
sum[i]=v[i]+sum[i-1];
min=sum[0];
bestSum=-99999999;
int a,b,mini;
for(int i=1;i<=n;i++)
{
best[i]=sum[i]-min;
if(min>sum[i])
{
min=sum[i];
mini=i;
}
if(bestSum<best[i])
{
bestSum=best[i];
a=mini;
b=i;
}
}
++a;
fout<<bestSum<<" "<<a<<" "<<b;
return 0;
}