Good Bye 2016
C.New Year and Rating(思维)
•题意
定义 rating 分两类:
①$Div\ 1\ :\ rating \ge 1900$
②$Div\ 2\ :\ rating < 1900$
Limak 共参加了 n 场比赛,每场比赛给出两个信息,第 i 场比赛:
(1)ci :第 i 场比赛结束后的得分情况
(2)di :第 i 场比赛开始前的等级
让你求出这 n 场比赛结束后,Limak 的 rating 最大有多大,并且从这个 rating 往前推能使得第 i 场比赛开始前的 rating 满足 di;
如果 rating 可以很大很大,输出 "Infinity",如果不存在这样的情况,输出 "Impossible";
•题解
分三种情况:
(1)所有的 d 都为 1
(2)所有的 d 都为 2
(3)既有 1 也有 2
对于情况(1),直接输出 "Infinity" 即可;
对于情况(2),对所有的 c 求个前缀和,找到前缀非零且最大的,令其下一个的 rating = 1899,如果找不到,那么刚开始的 rating = 1899;
对于情况(3),找到 Div = 1 与 Div = 2 的转折处,从 2000 到 1799 枚举 rating,第一个满足所有 d 的即为答案;
•Code