Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define int int64_t
  3. #define F first
  4. #define S second
  5.  
  6. using namespace std;
  7. const int N = 2e5+5;
  8. const int INF = 1e18+7;
  9. const int MOD = 1e9+7;
  10.  
  11. int32_t main()
  12. {
  13. ios_base::sync_with_stdio(false);
  14. cin.tie(0); cout.tie(0);
  15. // freopen("input.txt","r",stdin);
  16. // freopen("output.txt","w",stdout);
  17. int q;
  18. cin>>q;
  19. while(q-->0){
  20. int l1,r1,l2,r2;
  21. int s1,d1,s2,d2;
  22. cin>>l1>>r1>>l2>>r2;
  23. cin>>s1>>d1>>s2>>d2;
  24. if(s1>=s2+d2 || s1+d1<=s2){
  25. cout<<s1<<" "<<s2<<endl;
  26. continue;
  27. }
  28. pair<int,int> e1= {-1,-1},e2={-1,-1};
  29. int ss1=s1, ss2=s2;
  30. int col1=min(abs(ss2+d2-ss1),abs((ss1+d1)-r1));
  31. ss1+=col1;
  32. int col2=min(abs(ss2+d2-ss1),abs(s2-l2));
  33. ss2-=col2;
  34. if(ss1>=ss2+d2 || ss1+d1<=ss2){
  35. e1={ss1,ss2};
  36. }
  37.  
  38. int sss1=s1, sss2=s2;
  39. col1=min(abs(sss1+d1-sss2),abs((sss1)-l1));
  40. sss1-=col1;
  41. col2=min(abs(sss2-(sss1+d1)),abs((sss2+d2)-r2));
  42. sss2+=col2;
  43. if(sss1>=sss2+d2 || sss1+d1<=sss2){
  44. e2={sss1,sss2};
  45. }
  46.  
  47. pair<int,int> ans={-1,-1};
  48. if(e1.F!=-1){
  49. ans=e1;
  50. }
  51. if(e2.F!=-1){
  52. if(ans.F==-1) ans=e2;
  53. else{
  54. int sum1=abs(ans.F-s1)+abs(ans.S-s2);
  55. int sum2=abs(e2.F-s1)+abs(e2.S-s2);
  56. if(sum2<sum1) ans=e2;
  57. }
  58. }
  59. cout<<ans.F<<" "<<ans.S<<endl;
  60. }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement