码迷,mamicode.com
首页 > 其他好文 > 详细

NYOJ 6 喷水装置(一)

时间:2015-07-03 21:52:29      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
int cmp(double a,double b)
{
  return a>b;
}
double f(double R) //求出每个喷水装置的长度
{
  return 2*sqrt((double)(R*R-1));
}
int main()
{
  int T,m,i,k;
  double sum,t,a[1010];
  scanf("%d\n",&T);
  while(T--)
  {
    memset(a,0,sizeof(a));
    scanf("%d",&m);
    for(i=0,k=0;i<m;i++)
    {
      scanf("%lf",&t);
      if(t>1)
        a[k++]=t;//将半径大于一的喷水装置存入数组,装置个数为k
    }
    sort(a,a+k,cmp);//快排,将喷水装置的覆盖长度,由大到小排序
    for(i=0,sum=0.0;i<k;i++)
    {
      sum+=f(a[i]);
      if(sum>=20.0)
      {
        break;
      }
    //printf("%d\n",i+1);
    }
    printf("%d\n",i+1);
  }
}

NYOJ 6 喷水装置(一)

标签:

原文地址:http://www.cnblogs.com/mycapple-zgs-111411/p/4619610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!