您的位置:首页 > 其它

zju1049题解

2011-01-02 11:37 197 查看
题目:

I Think I Need a Houseboat

Time Limit: 1 Second Memory Limit: 32768 KB

Fred Mapper is considering purchasing some land in Louisiana to build his house on. In the process of investigating the land, he learned that the state of Louisiana is actually shrinking by 50 square miles each year, due to erosion caused by the Mississippi River. Since Fred is hoping to live in this house the rest of his life, he needs to know if his land is going to be lost to erosion.

After doing more research, Fred has learned that the land that is being lost forms a semicircle. This semicircle is part of a circle centered at (0,0), with the line that bisects the circle being the X axis. Locations below the X axis are in the water. The semicircle has an area of 0 at the beginning of year 1. (Semicircle illustrated in the Figure.)



Input Format:

The first line of input will be a positive integer indicating how many data sets will be included (N).

Each of the next N lines will contain the X and Y Cartesian coordinates of the land Fred is considering. These will be floating point numbers measured in miles. The Y coordinate will be non-negative. (0,0) will not be given.

Output Format:

For each data set, a single line of output should appear. This line should take the form of:

��Property N: This property will begin eroding in year Z.��

Where N is the data set (counting from 1), and Z is the first year (start from 1) this property will be within the semicircle AT THE END OF YEAR Z. Z must be an integer.

After the last data set, this should print out ��END OF OUTPUT.��
Notes:

1. No property will appear exactly on the semicircle boundary: it will either be inside or outside.

2. This problem will be judged automatically. Your answer must match exactly, including the capitalization, punctuation, and white-space. This includes the periods at the ends of the lines.

3. All locations are given in miles.

Sample Input:

2
1.0 1.0
25.0 0.0

Sample Output:

Property 1: This property will begin eroding in year 1.
Property 2: This property will begin eroding in year 20.
END OF OUTPUT.

Source: Mid-Atlantic USA 2001

题目大意:弗雷德先生正在考虑在路易斯安娜州买一块地造房子,在土地调查中,他了解到由于密西西比河的侵蚀,路易斯安那州正以每年50平方英里的速度变小。弗雷德先生想知道他买的那块地是否会被侵蚀掉,经过进一步的研究,弗雷德先生发现将要被侵蚀的土地为半圆形,半圆是一个以(0,0)为中心的圆的一半,半圆的直边是x轴。x轴以下的部分在水中,第一年开始时,圆的面积是0,半圆如图所示。第一行输入一个整数n,表示有几组测试数据,接下来有n行,每行是(x,y)的坐标,弗雷德正在考虑地皮的位置,坐标值是以英里为单位的浮点数,坐标y不会为负数,这两个数不会都为0,输出经过多少年后,弗雷德的房子会被淹没。

算法分析:有(x,y)坐标可求出半径r,然后就可以求出面积,利用循环语句来求出年数,(也可以用面积除以50)。

代码:

语言:c

#include<stdio.h>

#include<math.h>

const double pi=3.1415927;

int main()

{

int i=1,n;

int year;

double x,y,radius,area;

scanf("%d",&n);

while(n--)

{

scanf("%lf%lf",&x,&y);

radius=x*x+y*y;

area=pi*radius/2.0;

year=(int)ceil(area/50.0);

printf("Property %d:",i++);

printf("This property will begin eroding in year %d./n",year);

}

printf("END OF OUTPUT./n");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: