狗哥的肚子

来源:互联网 发布:韦志中网络班收费标准 编辑:程序博客网 时间:2024/03/28 17:29

Description

在 ACM 集训队中,狗哥的肚子形状多变,令人啧啧称奇,但是大家都有一个疑问,狗哥的肚子在最大的时候,能有多大呢?于是大家通过观察测量,用三种近似形状和相对应的整数数据来描述狗哥的肚子。
但是狗哥的肚子实在太多变化的形状了,大家没有办法找出其中最大的值,于是请求你写一个程序,来计算狗哥的肚子横截面的最大面积。

Input

第一行是一个正整数T,代表有T组输入。
每组输入第一行是一个整数 N ,表示狗哥的肚子形状变化个数。
接下来 N 行,每行开头包括一个大写字母,可能是 T (三角形)、 R (矩形) 、 C (圆形) ,表示狗哥肚子横截面的形状。
在字母后,是一到两个整数,表示形状的尺寸,也就是说T后会跟着两个整数,分别代表着三角形的底和高,,R后会跟着两个整数,代表着矩形的两条邻边的长度,而 C 后会跟着一个整数,代表着半径。
保证 N ≤ 1000 ,尺寸都在[0,100]之间,且定义 π = 3.14159。

Output

对于每一组样例,输出最大的狗哥的肚子横截面积,结果请保留两位小数。

Sample Input

2
1
T 3 2
4
T 3 2
R 2 1
C 5
C 10

Sample Output

3.00
314.16

#include<stdio.h>
#define pi 3.14159
double m(double x,double y)
{
 if(x>y)
 return x;
 else
 return y;
 }
 
int main()
{
 int t,n,i,j;
 int x,y;
 double max1;
 char c[5];
 scanf("%d",&t);
 while(t--)
 {
  
   scanf("%d",&n);
   max1=0.00;
   for(j=0;j<n;j++)
   {
    scanf("%s",c);
    if(c[0]=='T')
    {scanf("%d%d",&x,&y);
    max1=m(max1,x*y*1.0/2.0);
    }
    if(c[0]=='R')
    {scanf("%d%d",&x,&y);
    max1=m(max1,x*y*1.0);
    }
    if(c[0]=='C')
    {scanf("%d",&x);
    max1=m(max1,x*x*1.0*pi);
    }
   }
  printf("%.2lf\n",max1);
 }
 return 0;
 }