Cod sursa(job #1774105)

Utilizator tiberiu.bucur17Tiberiu Constantin Emanoil Bucur tiberiu.bucur17 Data 8 octombrie 2016 16:14:23
Problema Secventa 2 Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <stdio.h>
#include <ctype.h>
#define BUF_SIZE 131072
FILE *fin,*fout;
int v[50001],pos=BUF_SIZE;
char buf[BUF_SIZE];
inline char getch()
{
    if(pos==BUF_SIZE)
    {
        fread(buf,BUF_SIZE,1,fin);
        pos=0;
    }
    return buf[pos++];
}
inline int getnr()
{
    int semn=1,x=0;
    char ch=getch();
    while(!isdigit(ch) && ch!='-')
        ch=getch();
    if(ch=='-')
        semn=-1,ch=getch();
    while(isdigit(ch))
    {
        x=x*10+ch-'0';
        ch=getch();
    }
    return x*semn;
}
int main()
{
    fin=fopen("secventa2.in","r");
    fout=fopen("secventa2.out","w");
    int n,dr,st,stmax,drmax,max,k,min;
    n=getnr();k=getnr();
    min=0;st=stmax=1;drmax=k;
    for(dr=1;dr<=k;dr++)
        v[dr]=getnr()+v[dr-1];
    max=v[k];
    for(;dr<=n;dr++)
    {
        v[dr]=getnr()+v[dr-1];
        if(v[dr-k]<min)
        {
            min=v[dr-k];
            st=dr-k+1;
        }
        if(max<v[dr]-min)
        {
            max=v[dr]-min;
            stmax=st;
            drmax=dr;
        }
    }
    fprintf(fout,"%d %d %d",stmax,drmax,max);
    fclose(fin);
    fclose(fout);
    return 0;
}