Cod sursa(job #2632259)
Utilizator | eugen barbulescu eugen5092 | Data | 2 iulie 2020 17:11:15 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.72 kb |
#include <bits/stdc++.h>
using namespace std;
#define inf 2000000000
ifstream ci("ssm.in");
ofstream cou("ssm.out");
int n;
int v[6000005];
void citire(){
int i;
ci>>n;
for(i=1;i<=n;i++){
ci>>v[i];
}
}
void rez(){
int mn=inf,mx=-inf,imn=0,imx=0;
int smcr=0;
int sol,p1,p2;
for(int i=1;i<=n;i++){
smcr+=v[i];
if(smcr<mn){
mn=smcr;
imn=i;
}
if(smcr>mx){
mx=smcr;
imx=i;
}
if(imx>imn){
sol=mx-mn;
p1=imn;
p2=imx;
}
}
cou<<sol<<" "<<p1+1<<" "<<p2;
}
int main()
{
citire();
rez();
return 0;
}