Cod sursa(job #2924197)
Utilizator | Data | 26 septembrie 2022 21:27:07 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 45 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main(){
int n, sir[600001], s[600001], minim=0, sol=-999999999, indice1, indice2;
fin>>n;
for(int i=1;i<=n;i++){
fin>>sir[i];
}
s[0]=0;
for(int i=1;i<=n;i++){
s[i]=s[i-1]+sir[i];
}
for(int j=1;j<=n;j++){
if(s[j]<minim){
indice1=j+1;
minim=s[j];
}
if(s[j]-minim>sol){
indice2=j;
sol=s[j]-minim;
}
}
fout<<sol<<" "<<indice1<<" "<<indice2;
}