Cod sursa(job #2401067)

Utilizator bilghinIsleam Bilghin bilghin Data 9 aprilie 2019 13:27:14
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.21 kb
#include <stdio.h>

int v[6000001];

int main()
{

    FILE* si=fopen("ssm.in","r");
    FILE* so=fopen("ssm.out","w");

    int n,i,in=0,sf=0,maxx=0,inr=0,sfr=0;

    fscanf(si,"%d",&n);
    int g=n;
    for(i=0; i<n; i++)
    {
        fscanf(si,"%d",&v[i]);
        if(v[i]<0)
        {
            g--;
        }
    }
    if(g==0)
    {
        printf("%d",g);
        int mnr=v[0];
        for(i=0; i<n; i++)
        {
            if(v[i]>mnr)
            {
                mnr=v[i];
                inr=i;
                sfr=i;
            }
        }
        fprintf(so,"%d %d %d",mnr,inr+1,sfr+1);
    }
    else
    {
        int sum=v[0],maxx=sum;
        for(i=1; i<n; i++)
        {
            sum+=v[i];
            if(sum<0)
            {
                sum=0;
                in=i+1;
                sf=i+1;
            }
            else
            {
                sf=i;
                if(sum>maxx)
                {
                    maxx=sum;
                    inr=in;
                    sfr=sf;
                }
            }
        }
        fprintf(so,"%d %d %d",maxx,inr+1,sfr+1);
    }

    fclose(si);
    fclose(so);

    return 0;
}