WOJ1114-Bullseye
来源:互联网 发布:midas civil软件下载 编辑:程序博客网 时间:2024/05/21 06:29
A simple dartboard consists of a flat, circular piece of cork with concentric rings drawn on it. Darts are thrown at the board by players in
an attempt to hit the center of the dartboard (the Bullseye). The region between each pair of rings (or the center and the first ring)
represents a certain point value. The closer the region is to the center of the dartboard, the more points the region is worth, as shown in
the diagram below:
Ring radii are at 3", 6", 9", 12" and 15" (the Bullseye has a diameter of 6"). A game of Simple Darts between two players is played as
follows. The first player throws 3 darts at the board. A score is computed by adding up the point values of each region that a dart lands in.
The darts are removed. The second player throws 3 darts at the board; the score for player two is computed the same way as it is for player
one. The player with the higher score wins.
For this problem, you are to write a program that computes the scores for two players, and determine who, if anyone, wins the game. If a dart
lands exactly on a ring (region boundary), the higher point value is awarded. Any dart outside the outer ring receives no points. For the
purposes of this problem, you can assume that a dart has an infinitely fine point and can not land paritially on a ring; it is either on the
ring or it is not on the ring. Standard double precision floating point operations will be should be used.
输入格式
Input consists of 1 or more datasets. A dataset is a line with 12 double-precision values separated by spaces. Each pair of values represents the X
and Y distances respectively of a dart from the center of the board in inches. (the center is located at X = 0, Y = 0. The range of values are: -
20.0<=X, Y<=20.0. Player one's darts are represented by the first 3 pairs of values, and player two's by the last 3 pairs of values. Input is
terminated by the first value of a dataset being -100.
输出格式
For each dataset, print a line of the form:
SCORE: N to M, PLAYER P WINS.
Or:
SCORE: N to M, TIE.
N is player one's score, and M is player two's score. P is either 1 or 2 depending on which player wins. All values are non-negative integers.
Formula
Recall: r^2 = x^2 + y^2 where r is the radius, and (x, y) are the coordinates of a point on the circle.
样例输入
-9 0 0 -4.5 -2 2 9 0 0 4.5 2 -2-19.0 19.0 0 0 0 0 3 3 6 6 12 12-100 0 0 0 0 0 0 0 0 0 0 0
样例输出
SCORE: 240 to 240, TIE.SCORE: 200 to 140, PLAYER 1 WINS.
根据点到圆心的距离,把分算出来比较下就可以了
#include<stdio.h>#include<math.h>int fen(double x,double y){double r=x*x+y*y;if(r<=3*3)return 100;else if(r<=6*6)return 80;else if(r<=9*9)return 60;else if(r<=12*12)return 40;else if(r<=15*15)return 20;elsereturn 0;}int main(){int score1,score2;double a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6;while(scanf("%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf",&a1,&a2,&a3,&a4,&a5,&a6,&b1,&b2,&b3,&b4,&b5,&b6)){if(a1==-100)break;score1=fen(a1,a2)+fen(a3,a4)+fen(a5,a6);score2=fen(b1,b2)+fen(b3,b4)+fen(b5,b6);if(score1==score2)printf("SCORE: %d to %d, TIE.\n",score1,score2);else if(score1>score2)printf("SCORE: %d to %d, PLAYER 1 WINS.\n",score1,score2);elseprintf("SCORE: %d to %d, PLAYER 2 WINS.\n",score1,score2);}return 0;}
- WOJ1114-Bullseye
- Bullseye
- pku 2272 Bullseye
- POJ-2272-Bullseye
- POJ 2272 Bullseye G++
- Google Code Jam 2013 - Bullseye
- Bullseye Coverage license破解笔记
- C++ 代码覆盖率工具Bullseye Coverage
- 移植 bullseye coverage—arm 版本
- Bullseye Code Coverage 代码分析工具地址
- C++ 代码覆盖率工具Bullseye Coverage(收藏)
- Bullseye on Google: Hackers expose holes in GMail, Blogspot, Search Appliance
- 安卓之旅第四站--实战演练之Bullseye小游戏制作
- java文件读取
- C++ Prime Plus第六版--第二章复习题
- POJ1077 Eight —— 反向BFS
- jQuery的初步使用
- 【转载】postgresSQL数据库alter语句
- WOJ1114-Bullseye
- POJ 1113 Wall (凸包求周长)
- C++ const总结
- html的标签整理
- redhat虚拟机在配置中文语言是出现vmware workstation unrecoverable error: (vmui)错误
- 文件操作1
- linux 编程面试常见问题整理
- Linux Shell第二期
- mtk架构分析资料详解