Sunday 20 September 2015

UVA - 12097 Pie (UVALive - 3635, SPOJ PIE, HDU - 1969, POJ - 3122, SCU - 2574, Regionals 2006 >> Europe - Northwestern)

///     Raihan Ruhin
///     CSE, Jahangirnagar University.
///     Dhaka-Bangladesh.
///     id: raihanruhin (topcoder / codeforces / codechef / uva / uvalive), 3235 (lightoj)
///     mail: raihanruhin@ (yahoo / gmail / facebook)
///     blog: ruhinraihan.blogspot.com

#include<bits/stdc++.h>
using namespace std;

#define SET(a) memset(a,-1,sizeof(a))
#define CLR(a) memset(a,0,sizeof(a))
#define PI acos(-1.0)

#define MOD 1000000007
#define MX 100010

double radi[10005];
int N, F;

int calcF(double val)
{
    int cnt=0;
    for(int i=0;i<N;i++)
        cnt+=(int) (radi[i]*radi[i]*PI/val);
return cnt;
}

double BS()
{
    double hi=1000000000.0, lo=0.0, md;
    for(int i=0;i<100;i++)
    {
        md=(hi+lo)/2.0;
        if(calcF(md)<F) hi=md;
        else lo=md;
    }
return md;
}
int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    int tc, kk=1, n, m, x, y, a, b, c;
    string s;
    cin>>tc;
    while(tc--)
    {
        cin>>N>>F;
        F++;
        for(int i=0;i<N;i++) cin>>radi[i];

        cout<<setprecision(4)<<fixed<< BS() <<"\n";
    }
return 0;
}
UVA - 12097

No comments:

Post a Comment