Pagini recente » Cod sursa (job #1105355) | Cod sursa (job #2431102) | Cod sursa (job #672718) | Istoria paginii runda/battlestar_galactica | Cod sursa (job #2287683)
#include<fstream>
#include<iomanip>
#include<math.h>
#define x first
#define y second
#define EPS 4e-15
using namespace std;
ifstream fi("rubarba.in");
ofstream fo("rubarba.out");
pair<int,int> A[100005];
int n,i;
long double st,dr,mij;
long double arie(long double alpha)
{
int i;
long double x,y,xmx,xmn,ymx,ymn;
xmx=ymx=-1000000000.0;
xmn=ymn=1000000000.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;
dr=1.5707963267948966192313216916398;
st=0;
while(dr-st>EPS)
{
mij=(st+dr)/2;
if(arie(mij-EPS)>arie(mij))
st=mij;
else
dr=mij;
}
fo<<setprecision(2)<<fixed<<arie(mij)<<"\n";
fi.close();
fo.close();
return 0;
}