Cod sursa(job #2507550)

Utilizator daniel.vbVasile Daniel daniel.vb Data 10 decembrie 2019 14:01:55
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>

int n, x[6000001];

int main()
{
    int i,jcrt,kcrt,scrt,jm,km,sm;
    FILE *f,*g;
    f=fopen("ssm.in","r");
    g=fopen("ssm.out","w");
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",x+i);
    scrt=x[1];jcrt=1;kcrt=1;
    sm=x[1];jm=1;km=1;
    for(i=2;i<=n;i++)
    {
        if(scrt+x[i]>x[i])
        {
            scrt+=x[i];
            kcrt=i;
        }
        else
        {
            scrt=x[i];
            jcrt=i;kcrt=i;
        }
        if(scrt>sm)
        {
            sm=scrt;km=kcrt;jm=jcrt;
        }
        if(scrt==sm && jcrt==jm && kcrt-jcrt<km-jm)
        {
            sm=scrt;km=kcrt;jm=jcrt;
        }
    }
    fprintf(g,"%d %d %d",sm,jm,km);
}