Cod sursa(job #1671748)
Utilizator | Ramona Ghilea ghillix | Data | 2 aprilie 2016 10:00:04 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.83 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n,i,mn,mx,p1,p2,pmn,v;
long long s[6000005];
int main()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
for(i=1;i<=n;i++)
{
f>>v;
s[i]=s[i-1]+v;
}
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;
}