Josif_tepe

Untitled

Oct 17th, 2025
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5. typedef long long ll;
  6.  
  7. ll overlap(ll L1, ll R1, ll L2, ll R2) {
  8.     return max(0LL, min(R1, R2) - max(L1, L2));
  9. }
  10. ll red_line(vector<pair<ll, ll>> v) {
  11.     sort(v.begin(), v.end());
  12.     ll result = 0;
  13.     ll L = v[0].first, R = v[0].second;
  14.      
  15.     for(int i = 1; i < 3; i++) {
  16.         if(v[i].first <= R) {
  17.             R = max(R, v[i].second);
  18.         }
  19.         else {
  20.             result += R - L;
  21.             L = v[i].first;
  22.             R = v[i].second;
  23.         }
  24.     }
  25.      
  26.     result += R - L;
  27.     return result;
  28. }
  29. int main() {
  30.     vector<pair<ll, ll>> v(3);
  31.      
  32.     for(int i = 0; i < 3; i++) {
  33.         cin >> v[i].first >> v[i].second;
  34.     }
  35.      
  36.     ll K;
  37.     cin >> K;
  38.      
  39.     ll len = 0;
  40.     vector<int> idx = {0, 1, 2};
  41.     do {
  42.         vector<pair<ll, ll>> tmp = {v[idx[0]], v[idx[1]], v[idx[2]]};
  43.          
  44.         ll full_len = (tmp[0].second - tmp[0].first) + (tmp[1].second - tmp[1].first) + (tmp[2].second- tmp[2].first);
  45.          
  46.         ll res2 = red_line(tmp);
  47.         ll res = min(full_len, res2 + K);
  48.         len = max(len, res);
  49.          
  50.     } while(next_permutation(idx.begin(), idx.end()));
  51.      
  52.     cout << len << endl;
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment