POJ -- 1186 Stripies

来源:互联网 发布:数据机房综合布线 编辑:程序博客网 时间:2024/06/05 10:08

给出n个Stripies生物的重量,两个两个生物相撞成一个生物,相应的体积也会发生变化,新的生物重量为2*sqrt(m1*m2).注意这个公式,只有两个重量m1,m2越相近,得到的新的重量才越小,所以只需要把给出的所有重量从大到小排序即可,再逐个求出。

代码实现如下:

#include<cstdio>#include<algorithm>#include<cmath>using namespace std;const int Max=100;float a[Max+10];int tmp(int a,int b){    return a>b;}int main(){    int n;    while(scanf("%d",&n)==1){        for(int i=0;i<n;i++)            scanf("%f",&a[i]);        sort(a,a+n,tmp);        for(int i=1;i<n;i++){            a[i]=sqrt(a[i]*a[i-1])*2;        }        /*for(int i=0;i<n;i++)            printf("%.3f ",a[i]);        printf("\n");*/        printf("%.3f\n",a[n-1]);    }    return 0;}



0 0
原创粉丝点击