Cod sursa(job #1939051)
| Utilizator | Data | 25 martie 2017 13:38:22 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include<fstream>
#include<climits>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int s[6000001],m[6000001],a[6000001];
int main()
{
int n,i,j,Max,dr,st,Min=0,mini,x;
Max=INT_MIN;
mini=INT_MAX;
fin>>n;
for(i=1;i<=n;i++){
fin>>a[i];
}
for(j=1;j<=n;j++){
s[j]=s[j-1]+a[j];
if(s[j-1]<Min){
Min=s[j-1];
x=j-1;
}
if(s[j]-Min>Max){
Max=s[j]-Min;
st=x;
dr=j;
}
}
fout<<Max<<" "<<st+1<<" "<<dr;
fin.close();
fout.close();
return 0;
}
