Cod sursa(job #562615)

Utilizator andrei.finaruFinaru Andrei Emanuel andrei.finaru Data 23 martie 2011 16:25:20
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
#include<deque>
#include<vector>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,c,a,e,ok;
long long s;
deque<int> d;
vector<int> v;
deque<int>::iterator it,o;
int main()
{ int i;
  f>>n>>k;
  v.reserve(5000001);
  for(i=0;i<n;i++)
	  { f>>a;
	    while(!d.empty()&&v[d.back()]>=a) d.pop_back();
		d.push_back(i);
		v.push_back(a);
		//if(i>k) v.pop_front();
		/*ok=0;
		while(!ok)
			{ ok=1;
			  it=v.begin();
			  o=v.end();
			  e=d.front();
			  while(*it!=e&&it!=o) ++it;
			      if(it==o) d.pop_front(),ok=0;
			}*/
		if(d.front()==i-k) d.pop_front();
		if(i>=k) s+=d.front();
	  }
  g<<s<<'\n';
  f.close(); g.close();
  return 0;
}