Cod sursa(job #845186)

Utilizator Detrol2kGuianu Leon Detrol2k Data 30 decembrie 2012 15:55:04
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;

#define N 50001

int v[N], sum[N], i, j, n, k, min_sum = 1<<30, max_sum = -1<<30, poz_min, poz_max;
bool positive, negative;

int main()
{
	ifstream fin("secv2.in");
	ofstream fout("secv2.out");
	
	//Read
	fin>>n>>k;
	for(i=1; i<=n; i++)
		fin>>v[i];


	//Compute
	for(i=1; i<=n; i++)
	{
		sum[i] = sum[i-1]+v[i];
		if(sum[i] < min_sum)
		{
			min_sum = sum[i];
			poz_min = i;
		}
		if(i - poz_min >= k )
			if(sum[i] - min_sum > max_sum)
			{
				max_sum = sum[i] - min_sum;
				poz_max = i;
			}	
		if(v[i] < 0)
			positive = false;
		else
			negative = false;	
	}


	//Print
	if(positive || negative)
		fout<<1<<" "<<n<<" "<<sum[i];
	else
		fout<<poz_min+1<<" "<<poz_max<<" "<<max_sum;
}