Cod sursa(job #1426185)

Utilizator tamionvTamio Vesa Nakajima tamionv Data 29 aprilie 2015 07:15:55
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <deque>
#include <fstream>
using namespace std;

int main(){
	ifstream f("secv2.in");
	ofstream g("secv2.out");
	int n, k;
	f >> n >> k;
	int suma_scurta = 0, suma_max, start_max, fin_max, suma_lunga, start_lunga;
	deque<int> secv(k, 0);
	for(auto& x : secv){
		f >> x;
		suma_scurta += x; }

	suma_max = suma_scurta;
	start_max = 1;
	fin_max = k;
	suma_lunga = suma_scurta;
	start_lunga = 1;
	for(int i = k+1, x; i <= n; ++i){
		f >> x;
		secv.push_back(x);
		suma_scurta += x;
		suma_lunga += x;
		suma_scurta -= secv.front();
		secv.pop_front();
		
		if(suma_lunga < suma_scurta){
			suma_lunga = suma_scurta;
			start_lunga = i-k+1; }
		if(suma_lunga > suma_max){
			suma_max = suma_lunga;
			start_max = start_lunga;
			fin_max = i; } }
	g << start_max << ' ' << fin_max << ' ' << suma_max;
	return 0; }