Cod sursa(job #1774093)

Utilizator tiberiu.bucur17Tiberiu Constantin Emanoil Bucur tiberiu.bucur17 Data 8 octombrie 2016 15:48:34
Problema Secventa 2 Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <stdio.h>
#include <ctype.h>
#define BUF_SIZE 131072
FILE *fin,*fout;
int v[50000],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();
    st=dr=min=0;stmax=1;drmax=k;
    while(dr<k)
    {
        v[dr]=getnr()+v[dr-1];
        dr++;
    }
    max=v[k-1];
    while(dr<n)
    {
        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+1;
            drmax=dr+1;
        }
        dr++;
    }
    fprintf(fout,"%d %d %d",stmax,drmax,max);
    fclose(fin);
    fclose(fout);
    return 0;
}