蒟蒻求助 样例过了 只有10分
查看原帖
蒟蒻求助 样例过了 只有10分
565669
Marrelia楼主2022/4/27 15:37

只有第一个点AC

#include <bits/stdc++.h>
using namespace std;
const int N = 2e3+9;

struct Student{ // 表示一对会讲话的同学的坐标
	int x, y; // 第一个人的
	int p, q; // 第二个人的
}a[N];


struct line{
	int id;
	int gs;
}o[N], p[N];

bool cmp (line a, line b){
	return a.gs > b.gs;
}

// o[i]表示在第i行与第i-1行划分能隔开多少个讲话同学 p[i]同理
int main(){
	int m, n, k, l, d; //m是行 n是列
	scanf("%d%d%d%d%d", &m, &n, &k, &l, &d);
	for (int i=1; i<=d; ++i){
		scanf ("%d%d%d%d", &a[i].x, &a[i].y, &a[i].p, &a[i].q);
	}

	for (int i=1; i<=m-1; ++i){
		o[i].id=i;
		for (int j=1; j<=d; ++j){
			if((a[j].x == i && a[j].p == i+1) || (a[j].p == i && a[j].x == i+1))
				o[i].gs++;
		}
	}
	for (int i=1; i<=n-1; ++i){
		p[i].id=i;
		for (int j=1; j<=d; ++j){
			if((a[j].y == i && a[j].q == i+1) || (a[j].q == i && a[j].y == i+1)){
				p[i].gs++;
			}
		}
	}

	sort (o+1, o+m, cmp);
	sort (p+1, p+n, cmp);

	for (int i=1; i<=k; ++i){
		printf ("%d ", o[i].id);
	}

	printf ("\n");
	for (int i=1; i<=l; ++i){
		printf ("%d ", p[i].id);
	}
	return 0;
}
2022/4/27 15:37
加载中...