Cod sursa(job #934689)
Utilizator | Data | 31 martie 2013 00:17:50 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include<fstream>
#include<iostream>
using namespace std;
int n,i,aux,v[6000002],maxim,k,j,lung;
int main()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
for(i=1;i<=n;i++)
{
f>>aux;
v[i]=aux+v[i-1];
}
for(i=1;i<=n;i++)
{
if(v[0]>v[i])
{
v[0]=v[i];
k=i+1;
}
if(v[i]-v[0]>maxim)
{
maxim=v[i]-v[0];
j=i;
lung=j-k;
}
else
if (v[i]-v[0]==maxim)
if(i-k<lung)
j=i;
}
g<<maxim<<" "<<k<<" "<<j;
return 0;
}