Cod sursa(job #1878215)
| Utilizator | Data | 13 februarie 2017 22:34:05 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include<bits/stdc++.h>
using namespace std;
#define ull unsigned long long
#define ll long long
int p;
ull n,beg,end,i;
ll x,s,s1,s2;
ifstream in("ssm.in");
ofstream out("ssm.out");
int main()
{
in>>n;
in>>x;
s=s1=x;
beg=1; end=1;
for(i=2;i<=n;i++)
{
in>>x;
if(x)
{
s2=s1+x;
s=max(max(s,s2),x);
if(s==s2) end=i;
if(s==x&&!p){beg=i;end=i;}
if(s==x&&p){end=i;p=0;}
s1=max(x,s2);
}
else if(x>s){beg=i;p=1;}
}
out<<s<<" "<<beg<<" "<<end;
return 0;
}
