Pagini recente » Cod sursa (job #1354387) | Cod sursa (job #1827019) | Cod sursa (job #3244411) | Cod sursa (job #489553) | Cod sursa (job #512112)
Cod sursa(job #512112)
#include<iostream>
#include<fstream>
using namespace std;
const int N=5000001;
int n,k,v[N],d[N],st,dr=-1,i,smax,x1,x2;
long long s;
ifstream aa("secventa.in");
ofstream ss("secventa.out");
inline void stanga(int i)
{
if (i-d[st]==k) {
++st;
}
}
inline void dreapta(int i){
while (st<=dr && v[d[dr]]>=v[i]) {
--dr;
}
}
inline void adauga(int i) {
d[++dr]=i;
}
int main () {
aa >> n >> k;
for (i=1;i<=n;++i) {
aa >> v[i];
}
for (i=1;i<=k;++i) {
dreapta(i);
adauga(i);
}
s+=v[d[st]];
for(;i<=n;++i) {
stanga(i);
dreapta(i);
adauga(i);
if (v[d[st]]>smax) {
smax=v[d[st]];
x1=i;
x2=i-2;
}
}
for (i=x2;i<=x1;++i)
ss << v[i] << " ";
return 0;
}