Cod sursa(job #1515827)
| Utilizator | Data | 2 noiembrie 2015 11:39:39 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.8 kb |
#include <fstream>
using namespace std;
int n,i,v[6000002],s,maxim,j,p,umax,pmax;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int main (){
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
s = 0;
for (i=1;i<=n;i++){
if (s + v[i] >= v[i] ){
s+=v[i];
}
else{
s = v[i];
p = i;
}
if (s > maxim){
maxim = s;
pmax = p;
umax = i;
}
//fout<<s<<" ";
}
/*for (i=1;i<n;i++){
for (j=i;j<=n;j++){
if ((s[j]-s[i-1]) > maxim){
maxim = (s[j]-s[i-1]);
p = i;
u = j;
}
}
}*/
fout<<maxim<<" "<<pmax<<" "<<umax;
return 0;
}
