求思路,不要题解 :)
  • 板块题目总版
  • 楼主huoyanzhao
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/26 19:06
  • 上次更新2024/12/27 07:23:15
查看原帖
求思路,不要题解 :)
916921
huoyanzhao楼主2024/12/26 19:06

P1068:

#include<bits/stdc++.h>
using namespace std;
int n,m;
int x;    //分数线
int t;    //进入面试的人数 
int num1[3904],num2[3904],gra1[3904],gra2[3904];
int a[3904],b[3904],c=1;
int main()
{
	scanf("%d%d",&n,&m);
	int w=m;
	m*=1.5;
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d",&num1[i],&gra1[i]);
		gra2[i]=gra1[i];	
	}
	sort(gra1+1,gra1+n+1);
	x=gra1[n-m+1];
	printf("%d ",x);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(gra1[i]==gra2[j])
			{
				num2[i]=num1[j];
				gra2[j]=-39;
				break;
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		if(gra1[i]==gra1[i+1]&&num2[i]<num2[i+1])
		{
			swap(num2[i],num2[i+1]);
		}
	}
	for(int i=n;i>0;i--)
	{
//		这个要不要加:if(gra1[i]!=gra1[i-1]&&t>w) break;  
		if(gra1[i]>=x)
		{
			a[c]=num2[i],b[c]=gra1[i];
			c++;
			t++;
		}
	}
	printf("%d\n",t);
	for(int i=1;i<=t;i++)
	{
		printf("%d %d\n",a[i],b[i]);
	}
	return 0;
}

不加if(gra1[i]!=gra1[i-1]&&t>w) break;20分 :( 加了只有10分 :( :( :(

2024/12/26 19:06
加载中...