求助P1068
  • 板块灌水区
  • 楼主sb_sb_sb
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/8/14 00:47
  • 上次更新2023/10/27 15:31:56
查看原帖
求助P1068
669591
sb_sb_sb楼主2022/8/14 00:47

rt

AC #2,#6

其余全RE

#1看过了,运行没问题

原题传送门

#include<bits/stdc++.h>
using namespace std;
struct zhi
{
	int haoshu,chengji;
};
zhi a[5005];
void swap(int &x,int &y)
{
	int t=x;
	x=y;
	y=t;
}
void kpm(int l,int r)//这里用快速排序先排一遍考号 
{
	int i,j,mid;
	i=l+1;
	j=r;
	mid=a[l].haoshu;
	while(i<=j)
	{
		while(a[i].haoshu<mid)
			i++;
		while(a[j].haoshu>mid)
			j--;
		if(i<=j)
		{
			swap(a[i],a[j]);
			i++;
			j--;
		}
	}
	swap(a[l],a[j]);
	if(l<j)
		kpm(l,j-1);
	if(i<r)
		kpm(j+1,r);
}
void mp(int l,int r)//再用冒泡排序排一遍成绩 
{//别问为啥不都用快排,我乃蒟蒻 
	bool f;
	for(int i=l;i<=r-1;i++)
	{
		f=1;
		for(int j=1;j<=r-i;j++)
		{
			if(a[j].chengji<a[j+1].chengji)
				swap(a[j],a[j+1]);
			f=0;
		}
		if(f==1)
			break;
	}
}
int main()
{
	int n,m,s=0;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		cin>>a[i].haoshu>>a[i].chengji;
	m=floor((m*1.0)*1.5);
	kpm(1,n);
	mp(1,n); 
	for(int i=1;i<=n;i++)
	{
		if(a[i].chengji>=a[m].chengji)
			s++;
		else
			break;
	}
	cout<<a[m].chengji<<" "<<s<<endl;
	for(int i=1;i<=s;i++)
		cout<<a[i].haoshu<<" "<<a[i].chengji<<endl;
/*	cout<<endl;
	for(int i=1;i<=n;i++)
		cout<<a[i].haoshu<<" "<<a[i].chengji<<endl;*///这里是测试排序的程序 
 	return 0;
}
2022/8/14 00:47
加载中...