Cod sursa(job #668084)

Utilizator ShardEnache Andrei Shard Data 24 ianuarie 2012 12:40:03
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 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=1;
void read()
{
	FILE *in;
	in = freopen("date.in","r",stdin);
	scanf("%d %d\n",&n,&k);
	for (int i=1; i<=n; i++)
	{
		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 );
	printf("%d %d %d",intst,intend,intsum);
}
void solve()
{
	int i;
    for(i=1;i<=n;i++)
    {
        if (i>k && partsum + intarr[i] < sum[i] - sum[i-k])
        {
            partsum=sum[i] - sum[i-k];
            h = i-k+1;
        }
        else partsum+=intarr[i];
        if(partsum>intsum && i>=k)
        {
            intsum=partsum;
            intend=i;
            intst=h;
        }
    }	
}
int main()
{
	read();
	solve();
	write();
}