Cod sursa(job #2955603)
Utilizator | Data | 17 decembrie 2022 13:51:03 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <fstream>
using namespace std;
ifstream cin ("ssm.in");
ofstream cout("ssm.out");
const int N = 6000005;
int dp[N];
int main()
{
int sum = 0,maxi=0,n,x,st,dr,ans;
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>x;
dp[i] = max(dp[i-1]+x,x);
if(dp[i]==x)st = i;
if(dp[i]>maxi)
{
ans = st;
maxi = dp[i];
dr = i;
}
}
cout<<maxi<<' '<<ans<<' '<<dr;
return 0;
}