Cod sursa(job #1576458)

Utilizator andrei_diaconu11Andrei C. Diaconu andrei_diaconu11 Data 22 ianuarie 2016 14:42:05
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#define MAX_N 50000
using namespace std;
int s[MAX_N+1];
int main()
{
    int n, k, pmax, umax, sc, pc, i, x, smax;
    FILE *fi=fopen("secv2.in", "r"), *fo=fopen("secv2.out", "w");
    fscanf(fi, "%d%d", &n, &k);
    for(i=1;i<=k;i++){
        fscanf(fi, "%d", &x);
        s[i]=s[i-1]+x;
    }
    sc=smax=s[k];
    pc=pmax=1;
    umax=k;
    for(i=k+1;i<=n;i++){
        fscanf(fi, "%d", &x);
        s[i]=s[i-1]+x;
        if(s[i]-s[i-k]>sc+x){
            pc=i-k+1;
            sc=s[i]-s[i-k];
        }else
            sc+=x;
        if(sc>smax){
            smax=sc;
            pmax=pc;
            umax=i;
        }
    }
    fprintf(fo, "%d %d %d", pmax, umax, smax);
    fclose(fi);
    fclose(fo);
    return 0;
}