http://acm.hunnu.edu.cn/online/problem_pdf/CERC2012/H.pdf
HUNNU11377
题意:飞镖环有十个环,没个环从外到里对应一个得分1~10,每个环有一定的半径,给出n次丢飞镖的坐标,求出得分
思路:直接算出左边离原点的半径判断在哪个环里即可,然后求出半径,一开始将判断全部写成了函数,在循环里调用超时了,将所有判断移到循环内就AC了,坑!
#include <stdio.h> #include <math.h> #include <string.h> int main() { int t,n,x,y,r,sum; scanf("%d",&t); while(t--) { scanf("%d",&n); sum = 0; while(n--) { scanf("%d%d",&x,&y); r = x*x+y*y; if(r>=0 && r<=400) sum+= 10; else if(r>400 && r<=1600) sum+= 9; else if(r>1600 && r<=3600) sum+= 8; else if(r>3600 && r<=6400) sum+= 7; else if(r>6400 && r<=10000) sum+= 6; else if(r>10000 && r<=14400) sum+= 5; else if(r>14400 && r<=19600) sum+= 4; else if(r>19600 && r<=25600) sum+= 3; else if(r>25600 && r<=32400) sum+= 2; else if(r>32400 && r<=40000) sum+= 1; } printf("%d\n",sum); } return 0; }