Cod sursa(job #675819)

Utilizator PatrikStepan Patrik Patrik Data 8 februarie 2012 12:08:07
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
	#include<stdio.h>
	FILE *f , *g ;
	long n  , p1 , p2 , pmin , min , max ,k,v[50001];
	
	void citire();
	void solve();
	void tipar();
	
	int main()
	{
		citire();
		solve();
		tipar();
		return 0;
	}
	
	void citire()
	{
		f=fopen("secv2.in" , "r" );
		fscanf(f , "%ld%ld"  , &n , &k);
		for(long i = 1 ; i<= n ; ++i )
			fscanf(f , "%d" , &v[i] );
		fclose(f);
	}
	
	void solve()
	{
		min = pmin = 0;
		for(int i = 1 ; i <= k ; ++i )
			v[i]+=v[i-1];
		max = v[k];
		p1 = 1;
		p2 = k;
		for(int i = k+1 ; i<= n ; ++i )
		{
			v[i]+=v[i-1];
			if(v[i-k] < min)
			{
				min = v[i-k];
				pmin = i-k;
			}
			if(v[i]-min > max )
			{
				max = v[i]-min;
				p1 = pmin+1;
				p2 = i;
			}
		}
	}
	
	void tipar()
	{
		g=fopen("secv2.out" , "w" );
		fprintf(g , "%d %d %ld" , p1 , p2 , max );
		fclose(g);
	}