Cod sursa(job #1659250)
Utilizator | Ramona Ghilea ghillix | Data | 22 martie 2016 09:30:20 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.85 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n,i,mn,mx,p1,p2,pmn,v[6000005];
long long s[6000005];
int main()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i];
s[i]=s[i-1]+v[i];
}
mn=s[1];
for(i=2;i<=n;i++)
{
if(s[i-1]<mn)
{
mn=s[i-1];
pmn=i;
}
if(s[i]-mn==mx && pmn==p1 && p2-p1>i-pmn)
{
mx=s[i]-mn;
p2=i;
p1=pmn;
}
else if(s[i]-mn==mx && pmn<p1)
{
mx=s[i]-mn;
p2=i;
p1=pmn;
}
else if(s[i]-mn>mx)
{
mx=s[i]-mn;
p2=i;
p1=pmn;
}
}
g<<mx<<" "<<p1<<" "<<p2;
return 0;
}