# Circles Inside a Square（几何题）

## 题目描述

You have 8 circles of equal size and you want to pack them inside a square. You want to minimize the size of the square. The following figure illustrates the minimum way of packing 8 circles inside a square:

Given the radius, r, find the area of the minimum square into which 8 circles of that radius can be packed.

## 输入

There is one input line, it consists of a positive real number (between 0.001 and 1000, inclusive) denoting the radius, r.

## 输出

Print the area of the minimum square where 8 circles of radius r can be packed. Print 5 digits after the decimal. Your output is considered correct if it is within ±0.00001 of the judge’s output.

## 样例输入

0.1


## 样例输出

0.34383


#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma GCC optimize (2)
#pragma G++ optimize (2)
#include <bits/stdc++.h>
#include <algorithm>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
#define wuyt main
typedef long long ll;
#define HEAP(...) priority_queue<__VA_ARGS__ >
#define heap(...) priority_queue<__VA_ARGS__,vector<__VA_ARGS__ >,greater<__VA_ARGS__ > >
template<class T> inline T min(T &x,const T &y){return x>y?y:x;}
template<class T> inline T max(T &x,const T &y){return x<y?y:x;}
//#define getchar()(p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++)
//char buf[(1 << 21) + 1], *p1 = buf, *p2 = buf;
ll read(){ll c = getchar(),Nig = 1,x = 0;while(!isdigit(c) && c!='-')c = getchar();
if(c == '-')Nig = -1,c = getchar();
while(isdigit(c))x = ((x<<1) + (x<<3)) + (c^'0'),c = getchar();
return Nig*x;}
const ll inf = 1e15;
const int maxn = 2e5 + 7;
const int mod = 1e9 + 7;
#define start int wuyt()
#define end return 0
/**bool prime(int n)
{
if(n==1||n==1)
return false;
for(int i=2;i*i<=n;i++)
{
if(n%i==0) return false;
}
return true;
}
int num[maxn],n,cnt,judge[maxn];
void shai()
{
for(int i=2;i<=maxn;i++)
{
if(!judge[i])
num[++cnt]=i;
for(int j=1;j<=cnt&&num[j]*i<=maxn;j++)
{
judge[i*num[j]]=1;
if(i%num[j]==0)
break;
}
}
}**/
start{
///
double r;
scanf("%lf",&r);
double ans=0;
ans+=r*4;
printf("%f\n",r);
ans+=(1.8637*r);
printf("%f\n",ans);
printf("%.7f\n",ans*ans);
end;
}



r==0.1时的结果0.34383进行开方，减去四倍的半径就是0.18637然后目前得到的这个数就是比较难球求的中间部分的长度，它必然和半径有关，而且这个关系肯定是成特定比例的因此呢，中间难求的部分和2r的关系通过这个关系来解决0.18637/（2r）等于1.8637

2020.7.25更

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

int main()
{
double a，b;
cin>>a;
b=(2*sqrt(2)+2*sqrt(3)+2)*a/sqrt(2);
b=b*b;
printf("%.5f",b);
return 0;
}


04-12 6984
06-26 27

08-09 406
03-04 161
03-26 436
01-23 75