#include #include #include using namespace std; typedef long long ll; ll overlap(ll L1, ll R1, ll L2, ll R2) { return max(0LL, min(R1, R2) - max(L1, L2)); } ll red_line(vector> v) { sort(v.begin(), v.end()); ll result = 0; ll L = v[0].first, R = v[0].second; for(int i = 1; i < 3; i++) { if(v[i].first <= R) { R = max(R, v[i].second); } else { result += R - L; L = v[i].first; R = v[i].second; } } result += R - L; return result; } int main() { vector> v(3); for(int i = 0; i < 3; i++) { cin >> v[i].first >> v[i].second; } ll K; cin >> K; ll len = 0; vector idx = {0, 1, 2}; do { vector> tmp = {v[idx[0]], v[idx[1]], v[idx[2]]}; ll full_len = (tmp[0].second - tmp[0].first) + (tmp[1].second - tmp[1].first) + (tmp[2].second- tmp[2].first); ll res2 = red_line(tmp); ll res = min(full_len, res2 + K); len = max(len, res); } while(next_permutation(idx.begin(), idx.end())); cout << len << endl; return 0; }