Cod sursa(job #642352)
Utilizator | nichita trita nicnic28 | Data | 1 decembrie 2011 09:37:34 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
const int N=6000000;
int sc,smax=-2147483648,i,nr[N],stc,n,drc,stmax,drmax;
void f(){
for(i=1 ; i<=n ; ++i){
if(sc>0){
sc+=nr[i];
}else{
sc = nr[i];
stc = i;
}
if(sc>smax){
smax=sc;
stmax=stc;
drmax=i;
}
}
}
int main(){
in>>n;
for(i=1 ; i<=n ; ++i)
in>>nr[i];
f();
out<<smax<<" "<<stmax<<" "<<drmax;
return 0;
}