#include <iostream> #include <iomanip> using namespace std; double absminus(double a, double b) { if (a >= b) return a - b; else return b - a; } double maxdigit(double a, double b, double c) { if (a >= b && a >= c) return a; else if (b >= a && b >= c) return b; else return c; } double averageclosest(double a, double b, double c) { if (absminus(a, b) >= absminus(a, c)) return (a + b) / 2; else return (a + c) / 2; } int main() { double p, t, g1, g2, g3, gj; double finalgrade; while (cin >> p >> t >> g1 >> g2 >> g3 >> gj) { if (absminus(g1, g2) <= t) finalgrade = (g1 + g2) / 2; else if ((absminus(g3, g1) <= t) && (absminus(g3, g2) <= t)) finalgrade = maxdigit(g1, g2, g3); else if ((absminus(g3, g1) > t) && (absminus(g3, g2) > t)) finalgrade = gj; else finalgrade = averageclosest(g3, g1, g2); cout.setf(ios::fixed); cout.precision(1); cout << finalgrade << endl; } return 0; }