Pagini recente » Cod sursa (job #2273754) | Cod sursa (job #3125064) | Cod sursa (job #1510179) | Cod sursa (job #2501414) | Cod sursa (job #562261)
Cod sursa(job #562261)
#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;
}