Cod sursa(job #1788025)

Utilizator croi01Henry Croitor Jr. croi01 Data 25 octombrie 2016 15:44:43
Problema Subsecventa de suma maxima Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,i,a,k;
    FILE * fp;
    fp = fopen("ssm.in","r");
    fscanf(fp,"%i",&n);
    int left = 0;
    int len = 0;
    int sc = 0;
    int scsum = -1000;
    fscanf(fp,"%i",&k);
    for(i = 0;i<n;i++)
    {
        fscanf(fp,"%i",&a);
        if(sc < 0)
        {
            sc = 0;
            left = i;
        }
        else if(sc - k*(left - i +1))
        {
            sc = 0;
            left = i;
        }
        sc+=a;
        if(sc - k*(left - i +1) > scsum - k*(len +1))
        {
            len = i - left;
            scsum = sc;
        }
    }
    fclose(fp);
    fp = fopen("ssm.out","w");
    fprintf(fp,"%i",scsum);
    fclose(fp);
    return 0;
}