Cod sursa(job #668083)

Utilizator ShardEnache Andrei Shard Data 24 ianuarie 2012 12:32:01
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio>
#define min -1250000000
#define max 1250000000
int n,k;
int intst,intend,intsum=min,partsum;
int intarr[50005];
int sum[50005];
int h;
void read()
{
	FILE *in;
	in = freopen("secv2.in","r",stdin);
	scanf("%d %d\n",&n,&k);
	for (int i=1; i<=n; scanf("%d",&intarr[i++]))
	{
		        sum[i] = sum[i-1] + intarr[i];
	}
}
void write()
{
	FILE *out;
	out = freopen("secv2.out","w+",stdout);
	setvbuf ( out, NULL, _IOFBF, 1024 );
	if (intsum>0)
		printf("%d %d %d",intst,intend,intsum);
	else
		printf("%d %d %d",intst,intend,intsum);
}
void solve()
{
	int i,j;
    for(i=1;i<=n;i++)
    {
        if (i>k && h + intarr[i] < sum[i] - sum[i-k])
        {
            h=sum[i] - sum[i-k];
            h = i-k+1;
        }
        else h+=intarr  [i];
        if(partsum>intsum && i>=k)
        {
            intsum=h;
            intend=i;
            intst=h;
        }
    }	
}
int main()
{
	read();
	solve();
	write();
}