玄关
#include <iostream>
#include <cmath>
#include <limits>
#define DB double
#include <iostream>
using namespace std;
const int N = 1e4+10;
DB a(DB x1, DB y1, DB x2, DB y2, DB x3, DB y3) {
return 0.5 * abs(x1*(y2 - y3) + x2*(y3 - y1) + x3*(y1 - y2));
}
DB f(DB x1, DB y1, DB x2, DB y2, DB x3, DB y3, DB p) {
DB x = (1 - p) * x1 + p * x2, y = (1 - p) * y1 + p * y2, z = (1 - p) * x2 + p * x3, w = (1 - p) * y2 + p * y3, v = (1 - p) * x3 + p * x1, u = (1 - p) * y3 + p * y1;
return a(x, y, z, w, v, u);
}
signed main(void){
DB l, r, x1, y1, x2, y2, x3, y3;
cin >> l >> r >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
DB m = numeric_limits<DB>::infinity(), p = 0;
for(p = l; p <= r; p+=(r-l)/500){
DB k = f(x1, y1, x2, y2, x3, y3, p);
if (k < m) m = k;
}
cout.precision(15);
cout<<m<<endl;
return 0;
}