Pagini recente » Borderou de evaluare (job #1579975) | Borderou de evaluare (job #641304) | Borderou de evaluare (job #362214) | Borderou de evaluare (job #1901805) | Cod sursa (job #921905)
Cod sursa(job #921905)
#include <stdio.h>
#include <fstream>
using namespace std;
#define MAX_N 5000000
int V[MAX_N+5],List[MAX_N+5];
int N,K;
void write(int nr,int s,int f)
{
printf("%d -> ",nr);
for(int i=s;i<=f;i++)
{
printf("%d ",List[i]);
}
printf("\n");
}
int main()
{
ifstream fin("deque.in");
fin>>N>>K;
int i,first=1,last=0;
long long s=0;
for(i=1;i<=N;i++)
{
fin>>V[i];
while(first<=last&&V[i]<V[List[last]])
last--;
last++;
List[last]=i;
if(List[first]==i-K)
first++;
if(i>=K)
s+=V[List[first]];
}
fin.close();
ofstream fout("deque.out");
fout<<s<<'\n';
fout.close();
return 0;
}