Cod sursa(job #2651459)
| Utilizator | Data | 22 septembrie 2020 17:53:29 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int a[6000010],n;
int main()
{
int n;
f>>n;
int mini=0,k=0;
a[0] = 0;
f>>a[1];
int p=1,u=1;
int smax=a[1];
if(a[1] < mini) mini=a[1],k=1;
for(int i=2;i<=n;i++)
{ f>>a[i];
a[i]+=a[i-1];
int cmax=a[i]-mini;
if(cmax>smax)
{ smax=cmax;
p=k+1;
u=i;
}
if(a[i]<mini)
{ mini=a[i];
k=i;
}
}
g<<smax<<" "<<p<<" "<<u<<"\n";
return 0;
}
