Pagini recente » Cod sursa (job #2071624) | Cod sursa (job #177233) | Cod sursa (job #2799216) | Cod sursa (job #362728) | Cod sursa (job #3279957)
#include <fstream>
#include <iomanip>
#include <math.h>
using namespace std;
ifstream cin("rubara.in");
ofstream cout("rubara.out");
int n;
struct pct{
long double x,y;
} v[100001];
long double vf(long double a){
long double minl,minc,maxl,maxc,s,c,lin,col;
int i;
minl=minc=1e9;maxl=maxc=-1e9;
for(i=1;i<=n;i++){
s=sin(a);c=cos(a);
lin=v[i].x*c-v[i].y*s;
col=v[i].x*s+v[i].y*c;
maxl=max(maxl,lin);minl=min(minl,lin);
maxc=max(maxc,col);minc=min(minc,col);
}
return (maxl-minl)*(maxc-minc);
}
int main()
{
int i;long double st,dr,mij;
cin>>n;
for(i=1;i<=n;i++) cin>>v[i].x>>v[i].y;
st=0;dr=1.5;
while(dr-st>1e-5){//printf("%d %d\n",st,dr);
mij=(st+dr)/2;
if(vf(mij)<=vf(mij+(1e-5))){
dr=mij;
}else st=mij;
}
cout<<fixed<<setprecision(2)<<vf(st);
return 0;
}