Cod sursa(job #627537)

Utilizator Luncasu_VictorVictor Luncasu Luncasu_Victor Data 30 octombrie 2011 09:16:44
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>
char*r;
int n,p,u,mx;

int next(){
    bool neg=false;
    int x=0;
    while(*r!='-'&&(*r<'0'||*r>'9'))*r++;
    if(*r=='-'){neg=true;*r++;};
    while('0'<=*r&&*r<='9'){x=(x*10)+*r-'0';*r++;};
    if(neg)return -x; else return x;
}

int main(){
    int x,i,s,bst,p1=1;
    freopen("test.in","r",stdin);
    freopen("test.out","w",stdout);
        scanf("%d\n",&n);
        r=new char[n*12];
        gets(r);
        x=next();
        p=1;u=1;mx=x;bst=x;
        for(i=2;i<=n;i++){
            x=next();
            s=bst+x;
        if(x>s){bst=x;p1=i;} else bst=s;
        if(bst>mx){p=p1;u=i;mx=bst;} }
        printf("%d %d %d\n",mx,p,u);
}