Cod sursa(job #1075670)

Utilizator vlady1997Vlad Bucur vlady1997 Data 9 ianuarie 2014 14:01:18
Problema Subsecventa de suma maxima Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
        #include <cstdio>
        #define Max_n 6000010
        using namespace std;
        int a[Max_n], sum[Max_n], best[Max_n];
        int main()
        {
            int n, i, p=0, r=0, Min=0, Max=-2000000000;
            freopen("ssm.in","r",stdin);
            freopen("ssm.out","w",stdout);
            scanf("%d",&n); sum[0]=0;
            for (i=1; i<=n; i++) scanf("%d",&a[i]);
            for (i=1; i<=n; i++) sum[i]=sum[i-1]+a[i];
            for (i=1; i<=n; i++)
            {
                best[i]=sum[i]-Min;
                if (sum[i]<Min) {Min=sum[i]; p=i+1;}
                if (best[i]>Max) {Max=best[i]; r=i;}
            }
            printf("%d %d %d",Max,p,r);
            fclose(stdin);
            fclose(stdout);
            return 0;
        }