Cod sursa(job #2876963)
| Utilizator | Data | 23 martie 2022 22:41:18 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int dp[6000005],a[6000005];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;++i)
cin>>a[i];
dp[0]=a[0];
for(int i=1;i<n;++i)
{
if(a[i-1]+a[i]>=a[i])
{
dp[i]=dp[i-1];
a[i]=a[i-1]+a[i];
}
else
{
dp[i]=i;
}
}
int ans=-2e9,r;
for(int i=0;i<n;++i)
{
if(a[i]>ans)
{
r=i;
ans=a[i];
}
}
cout<<ans<<' '<<dp[r]+1<<' '<<r+1<<'\n';
return 0;
}
