#include <bits/stdc++.h>
using namespace std;
const int N = 1000050;
int n, k;
long long a[N];
long long maxn = -2147483650, minn = 2147483650, mmax[N], mmin[N];
int main() {
scanf("%d%d", &n, &k);
for (int i = 1; i <= n; i++) {
scanf("%lld", &a[i]);
if (i <= k && maxn < a[i]) {
maxn = a[i];
}
if (i <= k && minn > a[i]) {
minn = a[i];
}
}
mmin[1] = minn;
mmax[1] = maxn;
for (int i = 2; i <= n - k + 1; i++) {
if (a[i - 1] == minn || a[i - 1] == maxn) {
maxn = -2147483650;
minn = 2147483650;
for (int j = 0; j < k; j++) {
if (maxn < a[j + i]) {
maxn = a[j + i];
}
if (minn > a[j + i]) {
minn = a[j + i];
}
}
mmin[i] = minn;
mmax[i] = maxn;
} else {
if (maxn < a[i + k - 1]) {
maxn = a[i + k - 1];
}
if (minn > a[i + k - 1]) {
minn = a[i + k - 1];
}
mmin[i] = minn;
mmax[i] = maxn;
}
}
for (int i = 1; i <= n - k + 1; i++) {
printf("%d ", mmin[i]);
}
printf("\n");
for (int i = 1; i <= n - k + 1; i++) {
printf("%d ", mmax[i]);
}
return 0;
}
全部回复 共 0 条
还没有人回复。往下写第一条。
发表回复
登录后即可回复本帖,与出题人和同学一起讨论。
登录