- #include <iostream> 
- #include <algorithm> 
- using namespace std; 
- //check common interval existence 
- inline bool range(long  n1, long n2, long n3, long n4) 
- { 
-    return min(n3, n4) <= max(n1, n2) && max(n3, n4) >= min(n1, n2); 
- } 
-   
- bool intersect( long A, long tA, long B, long tB, long C, long tC, long D, long tD ) 
- { 
-    long  a1 = tA-tB;            long a2 = tC-tD; 
-    long  b1 = B-A;              long b2 = D-C; 
-    long  c1 = A*tB - B*tA;      long c2 = C*tD - D*tC; 
-    long  r1 = a1*C+b1*tC+c1;    long r3 = a2*A+b2*tA+c2; 
-    long  r2 = a1*D+b1*tD+c1;    long r4 = a2*B+b2*tB+c2; 
-    if (r1*r2 <= 0 && r3*r4 <= 0) return true; 
-    return false; 
- } 
-   
- int main() 
- { 
-     long A, B, C, D;         //X-axis 
-     long tA, tB, tC, tD;     //Y-axis 
-   
-     cin>> A >> tA; 
-     cin>> B >> tB; 
-     cin>> C >> tC; 
-     cin>> D >> tD; 
-   
-     if (range(A, B, C, D)) 
-     { 
-     //if both dots lie in different semiareas, or at least one of them lies on the segment 
-         bool r1 = intersect(A, tA, B, tB, C, tC, D, tD);      //{(A,tA), (B,tB)} and {(C, tC), (D, tD)} 
-         bool r2 = intersect(A, tA, B, tB, C, 0, C, tC);       //{(A,tA), (B,tB)} and {(C, 0), (C, tC)} 
-         bool r3 = intersect(A, tA, B, tB, D, tD, D, tD+tB);   //{(A,tA), (B,tB)} and {(D, tD), (D, tD+tB)} 
-         bool r4 = intersect(C, tC, D, tD, A, 0, A, tA);       //{(C,tC), (D,tD)} and {(A, 0), (A, tA)} 
-         bool r5 = intersect(C, tC, D, tD, B, tB, B, tB+tD);   //{(C,tC), (D,tD)} and {(B, tB), (B, tB+tD)} 
-         if (r1 || r2 || r3 || r4 || r5)                       //if at least one term is true 
-         { 
-             cout<<"Yes\n"; 
-             return 0; 
-         } 
-     } 
-     cout<<"No\n"; 
-     return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwovL2NoZWNrIGNvbW1vbiBpbnRlcnZhbCBleGlzdGVuY2UKaW5saW5lIGJvb2wgcmFuZ2UobG9uZyAgbjEsIGxvbmcgbjIsIGxvbmcgbjMsIGxvbmcgbjQpCnsKICAgcmV0dXJuIG1pbihuMywgbjQpIDw9IG1heChuMSwgbjIpICYmIG1heChuMywgbjQpID49IG1pbihuMSwgbjIpOwp9Cgpib29sIGludGVyc2VjdCggbG9uZyBBLCBsb25nIHRBLCBsb25nIEIsIGxvbmcgdEIsIGxvbmcgQywgbG9uZyB0QywgbG9uZyBELCBsb25nIHREICkKewogICBsb25nICBhMSA9IHRBLXRCOyAgICAgICAgICAgIGxvbmcgYTIgPSB0Qy10RDsKICAgbG9uZyAgYjEgPSBCLUE7ICAgICAgICAgICAgICBsb25nIGIyID0gRC1DOwogICBsb25nICBjMSA9IEEqdEIgLSBCKnRBOyAgICAgIGxvbmcgYzIgPSBDKnREIC0gRCp0QzsKICAgbG9uZyAgcjEgPSBhMSpDK2IxKnRDK2MxOyAgICBsb25nIHIzID0gYTIqQStiMip0QStjMjsKICAgbG9uZyAgcjIgPSBhMSpEK2IxKnREK2MxOyAgICBsb25nIHI0ID0gYTIqQitiMip0QitjMjsKICAgaWYgKHIxKnIyIDw9IDAgJiYgcjMqcjQgPD0gMCkgcmV0dXJuIHRydWU7CiAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKQp7CiAgICBsb25nIEEsIEIsIEMsIEQ7ICAgICAgICAgLy9YLWF4aXMKICAgIGxvbmcgdEEsIHRCLCB0QywgdEQ7ICAgICAvL1ktYXhpcwoKICAgIGNpbj4+IEEgPj4gdEE7CiAgICBjaW4+PiBCID4+IHRCOwogICAgY2luPj4gQyA+PiB0QzsKICAgIGNpbj4+IEQgPj4gdEQ7CgogICAgaWYgKHJhbmdlKEEsIEIsIEMsIEQpKQogICAgewogICAgLy9pZiBib3RoIGRvdHMgbGllIGluIGRpZmZlcmVudCBzZW1pYXJlYXMsIG9yIGF0IGxlYXN0IG9uZSBvZiB0aGVtIGxpZXMgb24gdGhlIHNlZ21lbnQKICAgICAgICBib29sIHIxID0gaW50ZXJzZWN0KEEsIHRBLCBCLCB0QiwgQywgdEMsIEQsIHREKTsgICAgICAvL3soQSx0QSksIChCLHRCKX0gYW5kIHsoQywgdEMpLCAoRCwgdEQpfQogICAgICAgIGJvb2wgcjIgPSBpbnRlcnNlY3QoQSwgdEEsIEIsIHRCLCBDLCAwLCBDLCB0Qyk7ICAgICAgIC8veyhBLHRBKSwgKEIsdEIpfSBhbmQgeyhDLCAwKSwgKEMsIHRDKX0KICAgICAgICBib29sIHIzID0gaW50ZXJzZWN0KEEsIHRBLCBCLCB0QiwgRCwgdEQsIEQsIHREK3RCKTsgICAvL3soQSx0QSksIChCLHRCKX0gYW5kIHsoRCwgdEQpLCAoRCwgdEQrdEIpfQogICAgICAgIGJvb2wgcjQgPSBpbnRlcnNlY3QoQywgdEMsIEQsIHRELCBBLCAwLCBBLCB0QSk7ICAgICAgIC8veyhDLHRDKSwgKEQsdEQpfSBhbmQgeyhBLCAwKSwgKEEsIHRBKX0KICAgICAgICBib29sIHI1ID0gaW50ZXJzZWN0KEMsIHRDLCBELCB0RCwgQiwgdEIsIEIsIHRCK3REKTsgICAvL3soQyx0QyksIChELHREKX0gYW5kIHsoQiwgdEIpLCAoQiwgdEIrdEQpfQogICAgICAgIGlmIChyMSB8fCByMiB8fCByMyB8fCByNCB8fCByNSkgICAgICAgICAgICAgICAgICAgICAgIC8vaWYgYXQgbGVhc3Qgb25lIHRlcm0gaXMgdHJ1ZQogICAgICAgIHsKICAgICAgICAgICAgY291dDw8Illlc1xuIjsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgfQogICAgY291dDw8Ik5vXG4iOwogICAgcmV0dXJuIDA7Cn0=