Cod sursa(job #423906)
| Utilizator | Data | 24 martie 2010 13:45:55 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include<fstream>
#define dmax 5000004
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int n,k,x[dmax],dq[dmax];
long long s;
int main()
{ int i,p1,p2;
in>>n>>k;
for(i=1;i<=n;i++)
in>>x[i];
in.close();
p1=1;
p2=0;
for(i=1;i<=n;i++)
{ while( x[dq[p2]] > x[i] && p2>=p1 )
p2--;
p2++;
dq[p2]=i;
if( i - dq[p1] > k-1 )
p1++;
if(i>=k)
s+=x[dq[p1]];
}
out<<s;
out.close();
return 0;
} 