Cod sursa(job #2761982)

Utilizator cosmin1812Nedelcu Adrian Cosmin cosmin1812 Data 4 iulie 2021 21:12:09
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
#include <iostream>
using namespace std;

int v[1000000];
int deque[1000000];

int main()
{
// folosesc coada cu 2 capete in care memorez pozitiile din vectorul
// v si pozitiile vor fi in ordine crescatoare pentru ca stergem mereu cand
// gasim o pozitie din v mai mica


	ifstream f("deque.in");
	ofstream g("deque.out");

	int i, n, k;
	int primul, ultim;
	int suma = 0;



	f >> n>> k;

	for (i = 0; i < n; i++) {

		f >> v[i];

	}

	primul = 0;
	ultim = -1;

	for (i = 0; i < n; i++) {


		while (primul <= ultim and v[i] <= v[ultim]) {

			ultim--;
		}

		ultim++;
		deque[ultim] = i;

		if (deque[primul] + k == i)
			primul++;

		if (i >= k)
			suma = suma + v[deque[primul]];
		 
	}

	g << suma;

}