Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. #define int long long
  4. #define x first
  5. #define y second
  6. #define mp make_pair
  7. #define pb push_back
  8. #define all(v) v.begin(), v.end()
  9. #define sz(v) (int) v.size()
  10. #define TASK ""
  11.  
  12. using namespace std;
  13.  
  14. typedef long long ll;
  15. typedef long double ld;
  16. typedef pair<int, int> pii;
  17.  
  18. const int INF = 2e9;
  19.  
  20. int l1, r1, l2, r2;
  21. int s1, d1, s2, d2;
  22.  
  23. int check(int c1, int c2) {
  24. if (c1 >= l1 && c1 + d1 <= r1 && c2 >= l2 && c2 + d2 <= r2 && max(c1, c2) >= min(c1 + d1, c2 + d2)) {
  25. return abs(c1 - s1) + abs(c2 - s2);
  26. }
  27. return INF;
  28. }
  29.  
  30. void solve() {
  31. cin >> l1 >> r1 >> l2 >> r2;
  32. cin >> s1 >> d1 >> s2 >> d2;
  33. int c1 = -1, c2 = -1, ans = INF;
  34. for (int L1 : {l2 - d1, r2 - d2 - d1, s2 - d1, l2 + d1, r2 - d2 + d1, s2 + d1, l1, s1, r1 - d1}) {
  35. for (int L2 : {l2, r2 - d2, s2, L1 - d2, L1 + d1}) {
  36. int curr = check(L1, L2);
  37. if (curr < ans) {
  38. c1 = L1;
  39. c2 = L2;
  40. ans = curr;
  41. }
  42. }
  43. }
  44. for (int L2 : {l1 - d2, r1 - d1 - d2, s1 - d2, l1 + d2, r1 - d1 + d2, s1 + d2, l2, s2, r2 - d2}) {
  45. for (int L1 : {l1, r1 - d1, s1, L2 - d1, L2 + d2}) {
  46. int curr = check(L1, L2);
  47. if (curr < ans) {
  48. c1 = L1;
  49. c2 = L2;
  50. ans = curr;
  51. }
  52. }
  53. }
  54. cout << c1 << " " << c2 << "\n";
  55. }
  56.  
  57. signed main() {
  58. #ifdef LOCAL
  59. freopen("input.txt", "r", stdin);
  60. // freopen("output.txt", "w", stdout);
  61. #else
  62. if (strlen(TASK) > 0)
  63. freopen(TASK".in", "r", stdin),
  64. freopen(TASK".out", "w", stdout);
  65. #endif
  66. ios_base::sync_with_stdio(0);
  67. cin.tie(0);
  68.  
  69. int T;
  70. cin >> T;
  71. while (T--) {
  72. solve();
  73. }
  74.  
  75. return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement