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

  CodeForces750C.cpp

 

posted @ 2019-10-05 08:21  HHHyacinth  阅读(102)  评论(0编辑  收藏  举报