Pagini recente » Cod sursa (job #833673) | Monitorul de evaluare | Cod sursa (job #598080) | Cod sursa (job #607769) | Cod sursa (job #906496)
Cod sursa(job #906496)
#include <fstream>
using namespace std;
ofstream fout ("secventa.out");
ifstream fin ("secventa.in");
int n,k,front,back,i,d[5000010],maxim,x,inceput;
long long v[5000010];
int main () {
maxim=-30000;
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>v[i];
front = 1; back = 0;
for (i=1;i<=n;i++) {
while (front<=back && v[i] <= v[d[back]]) back --;
d[++back]= i;
if (i - d[front] == k)
front ++;
if (v[d[front]]>maxim)
inceput=d[front];
}
x=inceput+k-1;
for (i=inceput;i<=x;i++)
fout<<v[i]<<" ";
fout<<"\n";
return 0;
}