Cod sursa(job #1877961)
| Utilizator | Data | 13 februarie 2017 20:04:30 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <iostream>
#include <fstream>
#define N 6000000
#define inf 0x7777777
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int n, a, b, p;
long long s[N+1], x, mn, mx=-inf;
int main(){
in>>n;
in>>s[1];
if(n==1){
out<<s[1]<<" 1 1";
return 0;
}
mn=s[1];
p=1;
for(int i=2; i<=n; i++){
in>>x;
s[i]=s[i-1]+x;
if(s[i]-mn>mx)mx=s[i]-mn,a=p+1,b=i;
if(s[i]<mn)mn=s[i],p=i;
}
out<<mx<<" "<<a<<" "<<b;
return 0;
}
