Cod sursa(job #562261)

Utilizator andrei.finaruFinaru Andrei Emanuel andrei.finaru Data 22 martie 2011 18:39:34
Problema Deque Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
#include<deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,c,v[5000005],a,e,ok;
long long s;
deque<int> d;
int main()
{ int i,j;
  f>>n>>k;
  for(i=1;i<=n;i++)
	  { f>>a;
	    //for(int k=0;k<d.size();k++) g<<d[k]<<' ';
		//g<<'\n';
	    while(!d.empty()&&d.back()>=a) d.pop_back();
		d.push_back(a);
		v[i]=a;
		if(i>=k) 
			{ ok=0;
			  while(!ok)
				{ ok=1;
				  j=i;
				  e=d.front();
				  while(v[j]!=e&&j+k>i) j--;
			  if(j+k<=i) d.pop_front(),ok=0;
			}
			s+=d.front();
			}
		//for(int k=0;k<d.size();k++) g<<d[k]<<' ';
		//g<<'\n';
	  }
  g<<s<<'\n';
  f.close(); g.close();
  return 0;
}