Cod sursa(job #3142392)
| Utilizator | Data | 21 iulie 2023 08:58:11 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 85 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n , x , s[6000005] , mini;
int main()
{
int dr;
fin>>n;
for(int i=1 ; i<=n ; i++){
fin>>x;
s[i]=s[i-1]+x;
if(i == 1){
mini=i;
}
else if((i!=1)&&(s[i] < s[mini])&&(i!=n)){
mini=i;
}
}
dr=mini+1;
for(int i=mini+2 ; i<=n ; i++)
if((s[i]-s[mini]) > (s[dr]-s[mini])){
dr=i;
}
fout<<s[dr]-s[mini]<<' ';
mini++;
fout<<mini<<' '<<dr;
return 0;
}
