Pagini recente » Cod sursa (job #1600260) | Cod sursa (job #2270341) | Cod sursa (job #1458619) | Cod sursa (job #532865) | Cod sursa (job #1774061)
#include <stdio.h>
#include <ctype.h>
#define minim(a,b) a>b? b:a
#define BUF_SIZE 131072
FILE *fin,*fout;
int min[50000],pos=BUF_SIZE,stot,sc;
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,x,k;
n=getnr();k=getnr();
st=dr=1;
while(dr<=k)
{
x=getnr();
stot+=x;
min[dr]=minim(min[dr-1],x);
dr++;
}
sc=max=stot;
while(dr<=n)
{
x=getnr();
stot+=x;
min[dr]=minim(min[dr-1],x);
if(min[dr-k]!=min[dr-k-1])
{
st=dr-k+1;
sc-=min[dr-k];
}
sc+=x;
if(sc>max)
{
max=sc;
stmax=st;
drmax=dr;
}
dr++;
}
fprintf(fout,"%d %d %d",stmax,drmax,max);
fclose(fin);
fclose(fout);
return 0;
}