Pagini recente » Cod sursa (job #1482444) | Cod sursa (job #1776318) | Cod sursa (job #1983044) | Cod sursa (job #2479620) | Cod sursa (job #2286787)
#include<fstream>
#include<iomanip>
#include<math.h>
#define x first
#define y second
using namespace std;
ifstream fi("rubarba.in");
ofstream fo("rubarba.out");
pair<int,int> A[100005];
long long n,i,rez;
long double arie(long double alpha)
{
int i;
long double x,y,xmx,xmn,ymx,ymn;
xmx=ymx=-1000000000.0;
xmn=ymn=1000000000.0;
alpha/=1000000000000.0;
for(i=1; i<=n; i++)
{
x=1.0*A[i].x*cos(alpha)-1.0*A[i].y*sin(alpha);
y=1.0*A[i].x*sin(alpha)+1.0*A[i].y*cos(alpha);
xmx=max(xmx,x);
ymx=max(ymx,y);
xmn=min(xmn,x);
ymn=min(ymn,y);
}
return ((xmx-xmn)*(ymx-ymn));
}
int main()
{
fi>>n;
for(i=1; i<=n; i++)
fi>>A[i].x>>A[i].y;
for(i=42; i>=0; i--)
{
if(rez+(1LL<<i)<6283185307179 && arie(rez+(1LL<<i)-1LL)>arie(rez+(1LL<<i)))
rez=rez+(1LL<<i);
}
fo<<setprecision(2)<<fixed<<arie(rez)<<"\n";
fi.close();
fo.close();
return 0;
}