求各位帮忙看看!
查看原帖
求各位帮忙看看!
398198
John少楼主2020/11/6 15:05
#include<iostream>
#include<cmath>
#include<iomanip> 
#include<cstdio>
#include<algorithm>
using namespace std;

bool cmp(int a, int b)
{
	return a > b;	
}//sort的降序函数。
long long a[10000] = { 0 }, b[101] = { 0 }, f[101] = { 0 };
long long x[10000] = { 0 }, y[101] = { 0 }; long long p = 0;
long long n = 0, m = 0, k = 0, s = 0;
int main()
{
	cin >> n >> m;//n表示报名参加笔试的选手总数,m表示计划录取的志愿者人数。
	for (int i = 0; i < n; i++)
	{
		cin >> k >> s;
		a[i] = k; b[i] = s;
	}
	int c = 0, d = 0; //第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。
	for (int i = 0; i < n; i++)
	{
		f[i] = b[i];
	}
	sort(f, f + n,cmp);
	int e = 1.5 * m;
	c = f[e-1];
	for (int i = 0; i < n; i++)
	{
		if (b[i] >= c)
		{
			d += 1;
        }
	}
	cout << c << " " << d << endl;
	for (int i = 0; i < n; i++)
	{
		if (b[i] >= c)
		{
				y[p] = b[i]; x[p] = a[i];
				p++;
		}
	}
	//开始对x,y这两个数组进行冒泡排序。
	for (int i = 0; i < d; i++)
	{
		for (int i = 0; i < d - 1; i++)
		{
			if (y[i] < y[i + 1])
			{
				swap(y[i], y[i + 1]);
				swap(x[i], x[i + 1]);
			}
		}
	}
	for (int i = 0; i < d; i++)
	{
		if ((y[i] == y[i + 1]) && (x[i] > x[i + 1]))
			swap(x[i], x[i + 1]);
	}
	for (int i = 0; i < d; i++)
	{
		cout << x[i] << " " << y[i] << endl;
	}	
}


前两个测试点过了,后面全部WA,求各位帮忙看看问题出现在哪?

2020/11/6 15:05
加载中...