Pagini recente » Cod sursa (job #219595) | Cod sursa (job #1919070) | Cod sursa (job #1052067) | Cod sursa (job #1077923) | Cod sursa (job #1861770)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin ("secventa.in");
ofstream fout("secventa.out");
int capats, capatd, i, j, n, k,ifin,z;
long long summin;
struct cap
{
int val, poz;
};
deque<cap> q;
cap x;
int main()
{
fin >> n >> k;
z++;
for (i = 1;i <= k;i++)
{
fin >> x.val;
x.poz = i;
a[z] = x.val;
z++;
while (!q.empty() && q.back().val > x.val)
{
q.pop_back();
}
q.push_back(x);
}
summin = q.front().val;
capats = 1;
capatd = k;
for (i = k + 1;i <= n;i++)
{
fin >> x.val;
a[z] = x.val;
z++;
x.poz = i;
capats++;
capatd++;
if (q.front().poz < capats)
{
q.pop_front();
}
while (!q.empty() && q.back().val > x.val)
{
q.pop_back();
}
q.push_back(x);
if (x < summin)
{
summin = x;
ifin = i;
}
}
for (i = ifin;i <= k;i++)
{
fout << a[i] << " ";
}
return 0;
}