C++ 解決 ICPC 滾榜問題 - 打 ACM 最快樂的就是滾榜讀隊名了 (Easy Version)
#include\u0020
using\u0020namespace\u0020std;
struct\u0020Submission\u0020{ \u0020\u0020string\u0020time; \u0020\u0020char\u0020problem; \u0020\u0020string\u0020team; \u0020\u0020string\u0020verdict; };
bool\u0020cmp(const\u0020Submission&\u0020s1,\u0020const\u0020Submission&\u0020s2)\u0020{ \u0020\u0020return\u0020s1.time\u0020<\u0020s2.time; }
bool\u0020isAccepted(const\u0020Submission&\u0020s)\u0020{ \u0020\u0020return\u0020s.verdict\u0020==\u0020"Accepted"; }
bool\u0020isPending(const\u0020Submission&\u0020s)\u0020{ \u0020\u0020return\u0020s.verdict\u0020==\u0020"Pending"; }
int\u0020main()\u0020{ \u0020\u0020int\u0020n,\u0020m,\u0020K; \u0020\u0020cin\u0020>>\u0020n\u0020>>\u0020m\u0020>>\u0020K;
\u0020\u0020unordered_map<string,\u0020int>\u0020teamRank;
\u0020\u0020vector<vector
\u0020\u0020for\u0020(int\u0020i\u0020=\u00200;\u0020i\u0020<\u0020K;\u0020++i)\u0020{ \u0020\u0020\u0020\u0020cin\u0020>>\u0020submissions[i].time\u0020>>\u0020submissions[i].problem\u0020>>\u0020submissions[i].team\u0020>>\u0020submissions[i].verdict; \u0020\u0020\u0020\u0020--submissions[i].problem;\u0020//\u0020convert\u0020problem\u0020char\u0020to\u0020index \u0020\u0020}
\u0020\u0020sort(submissions.begin(),\u0020submissions.end(),\u0020cmp);
\u0020\u0020for\u0020(int\u0020i\u0020=\u00200;\u0020i\u0020<\u0020K;\u0020++i)\u0020{ \u0020\u0020\u0020\u0020const\u0020Submission&\u0020s\u0020=\u0020submissions[i]; \u0020\u0020\u0020\u0020if\u0020(isAccepted(s))\u0020{ \u0020\u0020\u0020\u0020\u0020\u0020if\u0020(!teamPending[teamRank[s.team]][s.problem])\u0020{ \u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020teamScore[teamRank[s.team]][s.problem] +=\u00201; \u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020teamPending[teamRank[s.team]][s.problem]\u0020=\u0020true; \u0020\u0020\u0020\u0020\u0020\u0020} \u0020\u0020\u0020\u0020} \u0020\u0020\u0020\u0020else\u0020if\u0020(isPending(s))\u0020{ \u0020\u0020\u0020\u0020\u0020\u0020if\u0020(teamRank.find(s.team)\u0020==\u0020teamRank.end())\u0020{ \u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020teamRank[s.team]\u0020=\u0020teamRank.size(); \u0020\u0020\u0020\u0020\u0020\u0020} \u0020\u0020\u0020\u0020} \u0020\u0020}
\u0020\u0020vector
\u0020\u0020for\u0020(int\u0020i\u0020=\u00200;\u0020i\u0020<\u0020m;\u0020++i)\u0020{ \u0020\u0020\u0020\u0020for\u0020(int\u0020j\u0020=\u00200;\u0020j\u0020<\u0020n;\u0020++j)\u0020{ \u0020\u0020\u0020\u0020\u0020\u0020if\u0020(teamPending[i][j])\u0020{ \u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020teamScore[i][j] +=\u002020\u0020*\u0020count(teamPending[i].begin(),\u0020teamPending[i].begin()\u0020+\u0020j,\u0020true); \u0020\u0020\u0020\u0020\u0020\u0020} \u0020\u0020\u0020\u0020} \u0020\u0020}
\u0020\u0020vector
\u0020\u0020for\u0020(const\u0020string&\u0020team\u0020:\u0020teamOrder)\u0020{
\u0020\u0020\u0020\u0020int\u0020idx\u0020=\u0020teamRank[team];
\u0020\u0020\u0020\u0020for\u0020(int\u0020i\u0020=\u00200;\u0020i\u0020<\u0020rank[idx]\u0020-\u00201;\u0020++i)\u0020{
\u0020\u0020\u0020\u0020\u0020\u0020cout\u0020<<\u0020team\u0020<<\u0020endl;
\u0020\u0020\u0020\u0020}
\u0020\u0020\u0020\u0020if\u0020(teamPending[idx]\u0020!=\u0020vector
\u0020\u0020return\u00200; }
原文地址: https://www.cveoy.top/t/topic/p9SS 著作权归作者所有。请勿转载和采集!