https://www.spoj.pl/problems/PIE/10
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main(){
double ans,d,f;
double pi = M_PI;
vector<int> v;
vector<int> part;
int i,j,k,t,z;
int T;
int n,ff,r;
cin>>T;
while(T--){
v.clear();
part.clear();
cin>>n>>ff;
ff++;
for(i=0;i<n;i++){
cin>>r;
r=r*r;
v.push_back(r);
part.push_back(2);
}
sort(v.rbegin(),v.rend());
if(v.size()>=ff){
ans = pi*v[ff-1];
printf("%0.4f\n" ,ans);
}
else{
t = v.size();
while(t<ff){
part[0]++;
k = part[0];
z = v[0];
v.erase(v.begin());
part.erase(part.begin());
j=0;
for(i=0;i<v.size();i++){
if((z*part[i])>=(k*v[i])){
j=1;
v.insert(v.begin()+i,z);
part.insert(part.begin()+i,k);
break;
}
}
if(j==0){
v.push_back(z);
part.push_back(k);
}
t++;
}
ans = (double)v[0]/(double)(part[0]-1);
for(i=1;i<v.size();i++){
d = (double)v[i]/(double)(part[i]-1);
if(d<ans)
ans =d;
}
ans = ans * pi;
printf("%0.4f\n" ,ans);
}
}
return 0;
}
I m getting wrong answer
I have tried for many test cases but still i m unable to find that case where i m wrong
please anyone provide me that case where i m wrong
thanks
created
last reply
- 12
replies
- 801
views
- 8
users
- 1
link