Cod sursa(job #711571)

Utilizator impulseBagu Alexandru impulse Data 12 martie 2012 13:06:49
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
/*
    Rezolvare la problma `Secventa 2` de Alexandru Bagu de 90 de puncte
*/

#include <stdio.h>
#include <iostream>
#define L 50001
using namespace std;
int n, k, a[L];
FILE *f=fopen("secv2.in", "r"),
     *g=fopen("secv2.out", "w");

int main()
{
    fscanf(f, "%d %d\n", &n, &k);
    for(int i =0; i <= n; i++)
        fscanf(f, "%d", &a[i]);

    int max = 0, st = 0, ln = 0, amax = -0xFFFF, ast = 0, aln = 0;
    for(int i = 0; i < n; i++)
    {
        if(max + a[i] >= 0)
        {
            max += a[i];
            ln++;
            if(max > amax && ln >= k)
            {
                amax = max;
                ast = st;
                aln = ln;
            }
        }
        else
        {
            max = 0;
            st = i + 1;
            ln = 0;
        }
    }
    fprintf(g, "%d %d %d", ast + 1, ast + aln, amax);
    fclose(f);
    fclose(g);
    return 0;
}