Pagini recente » Cod sursa (job #92784) | Cod sursa (job #1757975) | Cod sursa (job #885291) | Cod sursa (job #2425980) | Cod sursa (job #3220929)
#include <iostream>
#include <fstream>
#include <cmath>
#include <iomanip>
using namespace std;
ifstream fin("rubarba.in");
ofstream fout("rubarba.out");
const double pi=acos(-1);
const long long lim=1e9;
const double e=1e-14;
struct abc{
double x,y;
}a[100005];
int n;
double arie(double u)
{
double cs=cos(u);
double sn=sin(u);
double minx=lim;
double miny=lim;
double maxx=-lim;
double maxy=-lim;
for (int i=1;i<=n;i++)
{
double x=a[i].x*cs-a[i].y*sn;
double y=a[i].x*sn+a[i].y*cs;
maxx=max(maxx,x);
maxy=max(maxy,y);
minx=min(minx,x);
miny=min(miny,y);
}
return (maxx-minx)*(maxy-miny);
}
double cauttern(double st,double dr)
{
if (dr-st<e) return st;
double mij1=st+(dr-st)/3;
double mij2=dr-(dr-st)/3;
if (arie(mij1)<arie(mij2)) return cauttern(st,mij2);
else return cauttern(mij1,dr);
}
int main()
{
fin>>n;
for (int i=1;i<=n;i++)
{
fin>>a[i].x>>a[i].y;
}
fout<<fixed<<setprecision(2)<<arie(cauttern(0,pi/2));
return 0;
}