Mai intai trebuie sa te autentifici.
Cod sursa(job #659749)
| Utilizator | Data | 10 ianuarie 2012 22:27:28 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
#define qqL 5000001
using namespace std;
ifstream in;
ofstream out;
struct deque
{
int val,pos;
}qq[qqL];
int main()
{
int N,K,x;
in.open("deque.in");
in>>N>>K;
int sum=0;
int head=1;
int tail=0;
for(int i=1;i<=N;++i)
{
in>>x;
for(;x<=qq[tail].val&&head<=tail;--tail);
qq[++tail].val=x;
qq[tail].pos=i;
if(qq[tail].pos-qq[head].pos>=K) ++head;
if(i>=K) sum+=qq[head].val;
}
in.close();
out.open("deque.out");
out<<sum<<'\n';
out.close();
return 0;
}
