Cod sursa(job #635143)

Utilizator cristianalex81Cristian Alexandru cristianalex81 Data 18 noiembrie 2011 15:51:41
Problema Secventa 2 Scor 70
Compilator c Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <stdio.h>
#define dim 50001

int v[dim];
int n,k;

inline int calc_sec(int i)
{
    int j,s=0;
    for (j=i;j>i-k;j--)
        s+=v[j];
    return s;
}

int main()
{
    freopen("secv2.in","r",stdin);
    freopen("secv2.out","w",stdout);
    int i,temp;
    int max,max_start,max_end;
    int start;
    scanf("%d %d",&n,&k);
    for (i=0;i<n;i++)
    {
        scanf("%d",&v[i]);
        if (i==k-1)//process firs seq
        {
            v[i+1-k]=calc_sec(i);
            start = 0;
            max = v[i+1-k];
            max_start = start;
            max_end = i;
        }
        if (i>=k)
        {
            temp = calc_sec(i);
            if (v[i-k]+v[i]>=temp)
            {
                v[i+1-k]=v[i-k]+v[i];
            }
            else
            {
                v[i+1-k]=temp;
                start = i-k+1;
            }
            if (v[i+1-k] > max)
            {
                max = v[i+1-k];
                max_start = start;
                max_end = i;
            }
        }
    }
    printf("%d %d %d\n",max_start+1,max_end+1,max);
    return 0;
}