50分,错哪了呢
查看原帖
50分,错哪了呢
549907
Aheaddd楼主2021/9/17 18:33
#include<iostream>
#include<string>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;

struct stu
{
	int a, b, c, all, id;
};
stu stud[305];

bool cmp(stu x, stu y)
{
	return x.all > y.all;
}
bool cmp1(stu x, stu y)
{
	return x.a > y.a;
}
bool cmp2(stu x, stu y)
{
	return x.id < y.id;
}

int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		stud[i].id = i;
		cin >> stud[i].a >> stud[i].b >> stud[i].c;
		stud[i].all = stud[i].a + stud[i].b + stud[i].c;
	}
	sort(stud + 1, stud + 1 + n, cmp);
	int ii = 1, flag = 0;
	for (int i = 1; i < n; i++)
	{
		if (stud[i].all == stud[i + 1].all)
		{
			flag = i; break;
		}
	}
	for (int i = 1; i < n; i++)
	{
		if (stud[i].all == stud[i + 1].all)ii++;
	}
	if (ii > 1)
	{
		sort(stud + 1 + flag, stud  + flag + ii, cmp1);
	}
	int flag1 = 0, iii = 1;
	for (int i = flag; i < flag + ii-1; i++)
	{
		if (stud[i].a == stud[i + 1].a)
		{
			flag1 = i; break;
		}
	}
	for (int i = flag; i < flag + ii-1; i++)
	{
		if (stud[i].a == stud[i + 1].a)iii++;
	}
	if (iii > 1)sort(stud + 1 + flag1, stud  + flag1 + iii, cmp2);
	for (int i = 1; i <= 5; i++)
	{
		if (stud[i].id)
		{
			cout << stud[i].id << " " << stud[i].all << endl;
		}
	}

	return 0;
}
2021/9/17 18:33
加载中...