#ifdef LOCAL_DBG #define _GLIBCXX_DEBUG #endif #include using namespace std; template using umap = unordered_map; template using pque = priority_queue; template using revpque = priority_queue, greater>; using ll = long long; using ld = long double; using str = string; using pll = pair; using vll = vector; using vi = vector; using vs = vector; using mapll = map; using umapll = umap; #define _rep(i, n) _repi(i, 0, n) #define _repi(i, l, r) for (ll i = ll(l); i < ll(r); i++) #define _get_rep(_1, _2, _3, NAME, ...) NAME #define rep(...) _get_rep(__VA_ARGS__, _repi, _rep) (__VA_ARGS__) #define _rrep(i, n) for (ll i = ll(n) - 1; 0 <= i; i--) #define _rrepi(i, l, r) for (ll i = ll(r) - 1; l <= i; i--) #define _get_rrep(_1, _2, _3, NAME, ...) NAME #define rrep(...) _get_rrep(__VA_ARGS__, _rrepi, _rrep) (__VA_ARGS__) #define each(...) for (auto __VA_ARGS__) #define all(x) x.begin(), x.end() #define mkpair make_pair #define is_in(x, l, r) ((l) <= (x) && (x) < (r)) #define in(t, ...) t __VA_ARGS__; isin(cin, __VA_ARGS__) #define inv(t, v, n) vector v(n); isin(cin, v) #define inv2(t, v, h, w) vector> v(h, vector(w)); isin(cin, v) #define invv(t, va, vb, n) vector va(n), vb(n); rep (i, n) { isin(cin, va[i], vb[i]); } #define invvv(t, va, vb, vc, n) vector va(n), vb(n), vc(n); rep (i, n) { isin(cin, va[i], vb[i], vc[i]); } #define inln(s) str s; getline(cin, s) #define print(...) osout(cout, __VA_ARGS__) #ifdef LOCAL_DBG #define dbg(...) osout(cerr, __VA_ARGS__) #else #define dbg(...) #endif const ll inf = numeric_limits::max() / 2; template bool chmax(T &x, const T &y) { if (x < y) { x = y; return 1; } return 0; } template bool chmin(T &x, const T &y) { if (x > y) { x = y; return 1; } return 0; } template void sort(vector &v) { sort(all(v)); } template void rsort(vector &v) { sort(all(v), greater()); } template void dec(vector &v) { rep (i, v.size()) v[i]--; } template istream& operator >>(istream &is, vector &v) { rep (i, v.size()) { cin >> v[i]; } return is; } template ostream& operator <<(ostream &os, pair p) { if (&os == &cout) { os << p.first << ' ' << p.second; } if (&os == &cerr) { os << '(' << p.first << ", " << p.second << ')'; } return os; } template ostream& operator <<(ostream &os, vector v) { if (&os == &cout) { rep(i, v.size() - 1) { os << v[i] << ' '; } os << v[v.size() - 1]; } if (&os == &cerr) { os << '['; rep(i, v.size() - 1) { os << v[i] << ", "; } os << v[v.size() - 1] << ']'; } return os; } void isin(__attribute__((unused)) istream &_) {} template void isin(istream &is, S &s, T&... t) { is >> s; isin(is, t...); } void osout(ostream& os) { os << '\n'; } template void osout(ostream &os, S s, T... t) { os << s; if (sizeof...(t)) os << ' '; osout(os, t...); } namespace config { int precision; void update(); } void solve(); int main() { config::update(); cin.tie(0); ios::sync_with_stdio(false); if (config::precision) { cout << fixed << setprecision(15); cerr << fixed << setprecision(15); } solve(); #ifdef LOCAL_DBG dbg("time:", 1000 * clock() / CLOCKS_PER_SEC, "[ms]"); #endif } void config::update() { precision = 0; } void solve() { in(ll, a, b); ll c = b - a; print(c * c * c / 6.0); }