4.17 网易互娱 足球第一题C++代码

#include <iostream>
#include <queue>
#include <unordered_map>
using namespace std;
class Team {
public:
	string name;
	int points;
	int goals_for;
	int goals_against;
	Team(string name,int points ,int goals_for,int goals_against)
		:name(name),points(points),goals_for(goals_for)
		,goals_against(goals_against)
	{	}
};
struct cmp {
public:
	bool operator()(Team*& A, Team*& B) {
		if (A->points != B->points) {
			return  A->points < B->points;
		}
		else if ((A->goals_for - A->goals_against)
			!= (B->goals_for - B->goals_against))
		{
			return ((A->goals_for - A->goals_against)
				< (B->goals_for - B->goals_against));
		}
		else if (A->goals_for != B->goals_for) {
			return A->goals_for < B->goals_for;
		}
		else {
			return A->name > B->name;
		}
	}
};
int main(){
	int T;
	cin >> T;

	for (int index = 0; index < T; index++) {
		priority_queue<Team*, vector<Team*>, cmp> pq;
		unordered_map<string, Team*> teamMap;
		for (int i = 0; i < 6; i++) {
			string name;
			int points, goals_for, goals_against;
			cin >> name>> points >>goals_for >> goals_against;
			Team* team = new Team(name, points, goals_for, goals_against);
			teamMap.insert(make_pair(name, team));
		}
		for (int i = 0; i < 3; i++) {
			string name0, name1;
			int goals_for_name0; 
			int goals_for_name1;
			cin >> name0 >> name1 >> goals_for_name0 >> goals_for_name1;
			teamMap[name0]->goals_for = teamMap[name0]->goals_for + goals_for_name0;
			teamMap[name1]->goals_for = teamMap[name1]->goals_for + goals_for_name1;
			teamMap[name0]->goals_against = teamMap[name0]->goals_against + goals_for_name1;
			teamMap[name1]->goals_against = teamMap[name1]->goals_against + goals_for_name0;
			if (goals_for_name0 > goals_for_name1) {
				teamMap[name0]->points = teamMap[name0]->points + 3;

			}
			else if (goals_for_name0 < goals_for_name1) {
				teamMap[name1]->points = teamMap[name1]->points + 3;

			}
			else if (goals_for_name0 == goals_for_name1) {
				teamMap[name0]->points = teamMap[name0]->points + 1;
				teamMap[name1]->points = teamMap[name1]->points + 1;
			}
		}
		for (pair<string, Team*> it : teamMap) {
			Team* team=it.second;
			pq.push(team);
		}
		while (!pq.empty()) {
			Team* team = pq.top();
			pq.pop();
			cout << team->name << " " << team->points << " " << team->goals_for << " "
				<< team->goals_against << endl;
		}
		cout << "END" << endl;
	}
	system("pause");
	return 0;
}

#网易互娱##实习##笔试题目##笔经#
全部评论

相关推荐

我看到好多人都在说0offer好焦虑,结果一看是投了百度快手字节啥的。好像大家都是只想通过校招进大厂,对小公司是不考虑的吗😂可是能进大厂的难道不是只有少部分人吗,真心发问
梦想是成为七海千秋:沉默的大多数吧,喜欢晒的都是能引起共鸣的大厂,找小厂的人,别人也不认识你这个小厂,就自己偷偷找了实际上大多数人哪有什么机会能找到大厂
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务