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; }
#网易互娱##实习##笔试题目##笔经#