贪心算法 之 喷水装置(一)

#include <iostream>

#include <cmath>

 

using namespace std;

 

double a[610];

 

int main()

{

    int m;

    cin>>m;

 

    while(m--){

       int n,i,j;

       cin>>n;

 

       for(i=0;i<n;i++){

            cin>>a[i];

        }

         

       for(i=0;i<n-1;i++)  //从大到小排序

            for(j=i+1;j<n;j++){

                if(a[i]<a[j])

                                   swap(a[i],a[j]);

           }        

       double length=0;

         

        for( i=0;i<n;i++){  //判断是否符合条件,当所选的预圆的半径之和大于或等于矩形斜边的一半时符合条件

                     length+=a[i];

                     if(length>=sqrt(404)/2) {

                cout<<i+1<<endl;

                break;

            }

        }

    }

    return 0;

}

posted on 2016-05-04 21:13  寡言xy  阅读(208)  评论(0编辑  收藏  举报

导航