问题2906--BanGosu!

2906: BanGosu!

时间限制: 2 Sec  内存限制: 128 MB
提交: 638  解决: 216
[状态] [讨论版] [提交] [命题人:]
题目描述
Yui最近在玩音游,但Yui并不满足于玩游戏,她决定制作一款属于自己的音游,名为BanGosu!。

在bangosu中,会给出n个半径为r的圆圈,玩家需要在恰当的时刻点击屏幕上出现的圆圈。针对每次点击,点击的位置离圆圈的圆心越近,玩家本次点击可以获得更高的评级,得到的分数也越高。当点击位置距离圆心距离小于0.2*r时为perfect,大于等于0.2*r且小于0.5*r为great,大于等于0.5*r且小于r为good,否则是miss。

除了点击的评级会影响获得的分数外,连击数(combo)也会对获得的分数有加成,每次成功的点击(评级为miss之外)都会使连击数加1。

针对每个出现的圆圈,Yui可以保证在恰当的时刻点击,但点击的位置却不一定准确。给出n个圆圈的位置以及Yui每次点击的位置,你需要算出Yui的最终得分。

- miss会使combo数清零。

- combo数的上涨先于得分判定,假设你现在combo为99,当你再次点击得到great评级时,你的combo数会先上升至100再计算得分,因此你该次点击的得分为
great的评级得分*(1+得分加成),即200*(1+0.01)=202.

- 得分加成只针对当前这次点击


评级
得分
perfect
300
great 200
good 100
miss 0

combo
得分加成
0 <= combo <100
0%
100 \le combo <200
1%
200 \le combo <300
2%
300 \le combo <400
3%
400 \le combo
4%




输入
第一行输入两个整数n和r,分别表示圆的数量和圆的半径。

接下来n行,每行两个正数xi$和yi,表示圆心坐标。

再有n行,每行两个正数xi和yi,表示点击坐标,第i个点击对应第i个圆。

n <= 106

r <= 1000

1 <= xi,yi <= 109
输出
输出一个整数score,表示总得分
样例输入 Copy
3  10
114 514
19 19
8 10
114 514.5
19 100
8 17
样例输出 Copy
400