Cod sursa(job #337025)

Utilizator iulia609fara nume iulia609 Data 2 august 2009 12:48:26
Problema Secventa 2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
#define dim 50001
using namespace std;

int v[dim];
long long S[dim];

long long minim(int a, int b)
{
	if(S[a] < S[b]) return a;
	return b;
}


int main()
{  int n, k, i, j, poz, p1, p2;
   long long max;

	FILE *f = fopen("secv2.in", "r");
	FILE *g = fopen("secv2.out", "w");
	
	fscanf(f, "%d%d", &n, &k);
	for(i = 1; i <= n; i++)
		{
			fscanf(f, "%d", &v[i]);
			S[i] = S[i-1] + v[i];
		}
	
	max = -25000;
	poz = minim(1, 2);
	for(i = 2; i <= n-k; i++)
		{
			poz = minim(i, poz);
			for(j = poz+k+1; j <= n; j++)
				if(S[j] - S[poz] > max) max = S[j]-S[poz], p1 = poz+1, p2 = j;
		}
	
	fprintf(g, "%d %d %d\n", p1, p2, max);
	
	fclose(f);
	fclose(g);
	return 0;
}