60分做法
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
const int N = 100010;
const int INF = 0x3f3f3f3f;
int a[N];
int main() {
deque<int> d;
vector<int> v1;
vector<int> v2;
int n, k, minx, maxx;
cin >> n >> k;
minx = INF;
maxx = -INF;
for (int i = 1; i <= n; i++) cin >> a[i];
for (int i = 1; i <= k; i++) {
d.push_back(a[i]);
minx = min(a[i], minx);
maxx = max(a[i], maxx);
}
v1.push_back(minx);
v2.push_back(maxx);
for (int i = k + 1; i <= n; i++) {
d.pop_front();
d.push_back(a[i]);
minx = INF, maxx = -INF;
deque<int>::iterator it;
for (it = d.begin(); it != d.end(); it++) {
minx = min(minx, *it);
maxx = max(maxx, *it);
}
v1.push_back(minx);
v2.push_back(maxx);
}
vector<int> ::iterator it1, it2;
for (it1 = v1.begin(); it1 != v1.end(); it1++) cout << *it1<< " ";
puts("");
for (it2 = v2.begin(); it2 != v2.end(); it2++) cout << *it2 << " ";
return 0;
}
100分做法
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
const int N = 100010;
const int INF = 0x3f3f3f3f;
int a[N];
int main() {
deque<int> d;
vector<int> v1;
vector<int> v2;
int n, k, minx, maxx;
cin >> n >> k;
minx = INF;
maxx = -INF;
for (int i = 1; i <= n; i++) cin >> a[i];
for (int i = 1; i <= k; i++) {
d.push_back(a[i]);
minx = min(a[i], minx);
maxx = max(a[i], maxx);
}
v1.push_back(minx);
v2.push_back(maxx);
for (int i = k + 1; i <= n; i++) {
d.pop_front();
d.push_back(a[i]);
minx = INF, maxx = -INF;
deque<int>::iterator it;
for (it = d.begin(); it != d.end(); it++) {
minx = min(minx, *it);
maxx = max(maxx, *it);
}
v1.push_back(minx);
v2.push_back(maxx);
}
vector<int> ::iterator it1, it2;
for (it1 = v1.begin(); it1 != v1.end(); it1++) cout << *it1<< " ";
puts("");
for (it2 = v2.begin(); it2 != v2.end(); it2++) cout << *it2 << " ";
return 0;
}