#include <bits/stdc++.h>
using namespace std;
int x[1005], y[1005];
int main() {
int m, n, k, l, d;
cin >> m >> n >> k >> l >> d;
for (int i = 0; i < d; i++) {
int aa, ab, ba, bb;
cin >> aa >> ab >> ba >> bb;
if (aa == ba)//竖着切
y[min(ab, bb)]++;
else//横着切
x[min(aa, ba)]++;
}
//L是纵向,K是横向
while (k--) {
int max = 0,p;
for (int i = 1; i <= m; i++) {
if (x[i] > max) {
max = x[i];
p = i;
}
}
x[p] = -1;
}
while (l--) {
int max = 0, p;
for (int i = 1; i <= m; i++) {
if (y[i] > max) {
max = y[i];
p = i;
}
}
y[p] = -1;
}
for (int i = 1; i <= m; i++) {
if (x[i] == -1)
cout << i << ' ';
}
cout << endl;
for (int i = 1; i <= n; i++) {
if (y[i] == -1)
cout << i << ' ';
}
return 0;
}
题目 ”最小覆盖子串“问题,难度为Hard,题目如下: 给你两个字符串 S 和 T,请你在 S 中找到包含 T 中全部字母的最短子串。如果 S 中没有这样一个子串,则算法返回空串,如果存在这样一个子串,则可…