Cod sursa(job #1075679)

Utilizator vlady1997Vlad Bucur vlady1997 Data 9 ianuarie 2014 14:15:50
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
        #include <cstdio>
        #define Max_n 6000010
        using namespace std;
        int sum[Max_n], best[Max_n];
        int main()
        {
            int n, i, x, 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",&x); sum[i]=sum[i-1]+x;}
            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;
                                    if (p>i) x=p-1;
                                            else x=p;
                                    }

            }
            printf("%d %d %d",Max,x,r);
            fclose(stdin);
            fclose(stdout);
            return 0;
        }