Cod sursa(job #1312680)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 9 ianuarie 2015 20:46:32
Problema Secventa 2 Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 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];
int main()
{
    fin=fopen("secv2.in","r");
    fout=fopen("secv2.out","w");
    int n,k;
    citeste(n);
    citeste(k);
    for(int i=0;i<n;i++) citeste(a[i]);
    int s=0,maxim=-1250000000;
    int post=0,posti;
    for(int i=0;i<=n-k;i++)
    {
        s=0;
        for(int j=i;j<i+k;j++)
        {
            s+=a[j];
        }
        if(maxim<s)
        {
            maxim=s;
            post=i+k;
            posti=i+1;
        }
        for(int j=i+k;j<n;j++)
        {
            s+=a[j];
            if(maxim<s)
            {
                maxim=s;
                post=j+1;
                posti=i+1;
            }
        }
    }
    fprintf(fout,"%d %d %d",posti,post,maxim);
}