PIE - Pie - SPOJ Solution C++

  Problem Link : PIE 


👉 Hint : edit please

 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;
#define _USE_MATH_DEFINES
 bool fun(double arr[],double val,int n,int f)
 {
 	if(val==0)
 		return false;
 	int k=0;
 	for(int i=0;i<n;i++)
 	{
 	
 		double x=arr[i];
 		k+=(int)(x/val);
 
 	if(k>=f)
 	{
 	
 		return true;
 	}
 	}
 	return false;
 }
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int t,n,f;
	cin>>t;
	while(t--)
	{
		double max=0.0;
		cin>>n>>f;
		double arr[n];
		for(int i=0;i<n;i++)
		{
			cin>>arr[i];
			arr[i]=acos(-1)*arr[i]*arr[i];
			if(arr[i]>max)
				max=arr[i];
		
		}
	
		double low=0.0,high=max,mid;
		int k=100;
		while(k--)
		{
			mid=(low+high)/2;
			if(fun(arr,mid,n,f+1))  //1 extra for myself
				low=mid;
			else
				high=mid;
		
		}
		printf("%.4f\n",high);

			
	}
	return 0;
}

 

Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook. 

😇Happy Learning!!