#include <cstring>
#include <iostream>
#include <vector>
#include <algorithm>
int arr[1001][1001];
int main() {
int M, N, K, L, D, X, Y, P, Q;
std::cin >> M >> N >> K >> L >> D;
while (--D >= 0){
std::cin >> X >> Y >> P >> Q;
if ((X == 41 && P == 42) || (X == 42 && P == 41))
std::cout << "---------------------" << std::endl;
if (X == P) {
if (Y + 1 == Q)
arr[X][Y] |= 1;
else if (Y - 1 == Q)
arr[P][Q] |= 1;
}
else if (X + 1 == P)
arr[X][Y] |= 2;
else if (X - 1 == P)
arr[P][Q] |= 2;
}
int ret[1001];
memset( ret, 0, (M * sizeof(int)) );
//找出每两行间有多少喽
for (int i = 1; i < M; ++i) {
for (int j = 1; j <= N; ++j) {
if (arr[i][j] == 2 || arr[i][j] == 3) {
std::cout << i << " " << j << std::endl;
++ret[i];
}
}
}
int ret2[1001];
memset(ret2, 0, (M * sizeof(int)));
int k = K;
while (--k >= 0){
int r = 0, max = 0;
for (int i = 1; i < M; ++i) {
if (ret[i] > max) {
max = ret[i];
r = i;
}
}
ret2[k] = r;
ret[r] = 0;
}
std::sort(std::begin(ret2), std::begin(ret2) + K);
for (int i = 0; i < K; ++i)
std::cout << ret2[i] << (i != K - 1 ? " " : "");
std::cout << std::endl;
memset(ret, 0, (N * sizeof(int)));
//找出每两列间有多少喽
for (int i = 1; i < N; ++i) {
for (int j = 1; j <= M; ++j) {
if (arr[j][i] == 1 || arr[j][i] == 3)
++ret[i];
}
}
memset(ret2, 0, (M * sizeof(int)));
int l = L;
while (--l >= 0) {
int r = 0, max = 0;
for (int i = 1; i < N; ++i) {
if (ret[i] > max) {
max = ret[i];
r = i;
}
}
ret2[l] = r;
ret[r] = 0;
}
std::sort(std::begin(ret2), std::begin(ret2) + L);
for (int i = 0; i < L; ++i)
std::cout << ret2[i] << (i != L-1 ? " " : "");
return 0;
}
by 萝卜头lbt @ 2019-06-05 12:32:25
有些是调试输出
by 萝卜头lbt @ 2019-06-05 12:32:53
@[萝卜头lbt](/space/show?uid=204450) 希望更丰富的展现?使用Markdown
by applese @ 2019-06-05 12:43:41
@[萝卜头lbt](/space/show?uid=204450) 希望更丰富的展现?使用Markdown
by 陈哲 @ 2019-06-05 12:48:54
```cpp
#include<iostream>
#include<cstring>
#include<algorithm>
#include<stdio.h>
#include<vector>
#define MAXN 2008
using namespace std;
int m,n,k,l,d;
struct node{
int id,sum;
}a[MAXN],b[MAXN];
bool cmp(const node& a,const node& b){
return a.sum>b.sum;
}
int main()
{
int i,j,n;
scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);
int x1,y1,x2,y2;
for(int i=1;i<=d;i++){
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
if(x1==x2){
if(y1>y2) swap(y1,y2);
b[y1].sum++;
}
else{
if(x1>x2) swap(x1,x2);
a[x1].sum++;
}
}
for(int i=1;i<=m;i++) a[i].id=i;
for(int i=1;i<=n;i++) b[i].id=i;
sort(a+1,a+1+n,cmp);
sort(b+1,b+1+n,cmp);
vector<int> vr,vc;
for(int i=1;i<=k;i++){
vr.push_back(a[i].id);
}
for(int i=1;i<=l;i++){
vc.push_back(b[i].id);
}
sort(vr.begin(),vr.end());
sort(vc.begin(),vc.end());
for(int i=0;i<k;i++){
printf("%d ",vr[i]);
}
printf("\n");
for(int i=0;i<l;i++){
printf("%d ",vc[i]);
}
return 0;
}
```
by charliegong @ 2019-06-05 13:17:57
@[萝卜头lbt](/space/show?uid=204450)
by charliegong @ 2019-06-05 14:08:17