老师出的题目,大佬帮忙看一下为什么只有20分
查看原帖
老师出的题目,大佬帮忙看一下为什么只有20分
791994
liyanchenlycccccc楼主2023/8/1 15:27

【模板】计数排序

题目描述

使用计数排序的方法,实现输入n个数对a[i]和b[i],输出以a[i]为主要关键字降序排列,若a[i]相等,则以b[i]降序排列后的排序结果。

输入格式

第一个一个n,表示n个数对。

接下来n行,每行两个用空格隔开的数,表示a[i]和b[i]。

输出格式

输出n行,为排列好的a[i]和b[i]。

样例 #1

样例输入 #1

10
5 9
3 5
2 4
2 2
7 3
6 2
4 5
4 7
2 6
8 6

样例输出 #1

2 2
2 4
2 6
3 5
4 5
4 7
5 9
6 2
7 3
8 6

提示

数据范围: n<=10000,a[i]、b[i]<=1000

#include <bits/stdc++.h>
using namespace std;
int a[1010],b[1010],n;
int main()
{
  cin>>n;
  for(int i=1;i<=n;i++){
  	cin>>a[i]>>b[i];
  }
  for(int i=1;i<=n;i++){
  	for(int j=i+1;j<=n;j++){
  		if(a[i]>a[j]&&b[i]==b[j]){
  			swap(a[i],a[j]);
		}
		if(a[i]==a[j]&&b[i]>b[j]){
  			swap(b[i],b[j]);
		}
		if(a[i]>a[j]){
			swap(a[i],a[j]);
			swap(b[i],b[j]);
	}
  }
}
  for(int i=1;i<=n;i++){
  	printf("%d %d\n",a[i],b[i]);
  }
  return 0;
}```
2023/8/1 15:27
加载中...