服了,我tmd服了
查看原帖
服了,我tmd服了
268811
画船听雨楼主2022/1/29 20:46

同样的代码交了几次,每次还都不一样的分。最后改来改去还是交源代码居然过了。。。。。

#include<iostream>
#include<set>
#include<algorithm>
#include<vector>
using namespace std;

struct MyStruct
{
	string name, career;
	int level, order;
	long long contribution=0;

};
bool cmp(const MyStruct& a, const MyStruct& b) {
	if (a.contribution == b.contribution)
		return a.order < b.order;
	else
		return a.contribution > b.contribution;
}
bool cmp2(const MyStruct& a, const MyStruct& b) {
	if (a.level == b.level)
		return a.order < b.order;
	else
		return a.level > b.level;
}

MyStruct xinde[777];

int main() {
	int n, i, j, k = 1;
	string str;
	MyStruct gang;

	cin >> n;
	for (i = 0; i < n; i++) {
		cin >> gang.name >> gang.career >> gang.contribution >> gang.level;
		gang.order = i;
		xinde[i] = gang;
	}
	sort(xinde + 3, xinde + n, cmp);
	for (i = 3; i < n; i++) {
		if (k <= 2) {
			xinde[i].career = "HuFa";
			k++;
		}
		else if (k <= 6) {
			xinde[i].career = "ZhangLao";
			k++;
		}
		else if (k <= 13) {
			xinde[i].career = "TangZhu";
			k++;
		}
		else if (k <= 38) {
			xinde[i].career = "JingYing";
			k++;
		}
		else {
			xinde[i].career = "BangZhong";
			k++;
		}
	}

	sort(xinde + 1, xinde + 3, cmp2);
	sort(xinde + 3, xinde + 5, cmp2);
	sort(xinde + 5, xinde + 9, cmp2);
	sort(xinde + 9, xinde + 16, cmp2);
	sort(xinde + 16, xinde + 41, cmp2);
	sort(xinde + 41, xinde + 700, cmp2);
	for (i = 0; i < n; i++) {
		cout << xinde[i].name << " " << xinde[i].career << " " << xinde[i].level << endl;
	}
	return 0;
}
2022/1/29 20:46
加载中...