POJ 2379 ACM Rank Table 排序, map
题目意思: 利用的就是acm的竞赛排名规则。大意是队伍参见比赛,然后让我们计算排名,第一关键词是过题数,过题数越多的队伍排名越高,排名相同的队伍看第二关键词时间,时间越短的队伍排名越高。 每道题目提交失败还会罚时,但是要注意的是若不通过题目,是不计算罚时的。 /* 本题要点: 1、 每道题都有第一次AC 的时间(秒做单位), 假设为 t1 = 3000, 这道题之前会可能错了很多次, 每错一次, 罚时 1200 秒。假如错三次 罚时 t2 = 1200 * 3; 每道题所花的时间为 t1 + t2 = 3000 + 3600 = 6600 ; 每个队伍,一共 AC 了几道题,算上这些题的所有时间,得到总时间 2、 队伍AC后可能还提交,无论对还是错,时间都是不算的 3、 数据输入的顺序是不一定的,也就是说两次AC,但是后面AC时间是最靠前的,这时后来提交的AC时间要忽略 4、 最后排序是AC->Time->id来排序的 */ # include <cstdio> # include <cstring> # include <iostream> # include <algorithm> # include <map> using namespace std ; typedef pair < int , int > PII ; // 记录 <团队编号, 题目编号> map < PII