Cod sursa(job #1312690)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 9 ianuarie 2015 20:51:09
Problema Secventa 2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <stdio.h>
#define DIM 10000
FILE *fin,*fout;
char buff[DIM];
int poz=0;
void citeste(int &numar)
{
     numar = 0;
     char semn='+';
     while (buff[poz] < '0' || buff[poz] > '9')
     {
          semn = buff[poz];
          if (++poz == DIM)
               fread(buff,1,DIM,fin),poz=0;
     }
     while ('0'<=buff[poz] && buff[poz]<='9')
     {
          numar = numar*10 + buff[poz] - '0';
          if (++poz == DIM)
               fread(buff,1,DIM,fin),poz=0;
     }
     if (semn == '-')
          numar = -numar;
}
int a[50001],su[50001];
int main()
{
    fin=fopen("secv2.in","r");
    fout=fopen("secv2.out","w");
    int n,k;
    citeste(n);
    citeste(k);
    citeste(a[0]);
    su[0]=a[0];
    for(int i=1;i<n;i++)
    {
        citeste(a[i]);
        su[i]=su[i-1]+a[i];
    }
    int s=0,maxim=-1250000000;
    int post=0,posti;
    for(int i=0;i<=n-k;i++)
    {
        s=0;
        s=su[i+k-1]-su[i-1];
        if(maxim<s)
        {
            maxim=s;
            post=i+k;
            posti=i+1;
        }
        for(int j=i+k;j<n;j++)
        {
            s=su[j]-su[i-1];
            if(maxim<s)
            {
                maxim=s;
                post=j+1;
                posti=i+1;
            }
        }
    }
    fprintf(fout,"%d %d %d",posti,post,maxim);
}