Cod sursa(job #474782)

Utilizator Cosmin1490Balan Radu Cosmin Cosmin1490 Data 5 august 2010 00:27:11
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
#include<deque>
#include<iostream>

using namespace std;
int N,K;
long long S;

deque<pair<int,int> > Q;


void citire()
{
	ifstream fin("deque.in");
	ofstream fout("deque.out");
	fin>>N>>K;
	int x;
	
	for(int i=1;i<=N;i++)
	{
		fin>>x;
		deque<pair <int,int> > ::iterator itr;
		if(!Q.empty())
		{
			itr=Q.end();
			itr--;
			while(itr->first > x && !Q.empty())
			{
				Q.pop_back();
				itr--;
			}
		}
		
		Q.push_back(make_pair(x,i));
		
		itr=Q.begin();
		
		if(i - itr->second >= K)
		{
			Q.pop_front();
			itr++;
		}
	
		if(i>=K) S+=itr->first;
	}
	
	fout<<S<<"\n";
	fin.close();
	fout.close();
	
}

int main(int argc, char *argv[])
{
	citire();

}