import java.util.*;
import java.lang.*;
import java.io.*;
import java.math.*;
class Ideone
{
//check common interval existence
public static boolean segmentsOverlap(long l1, long r1, long l2, long r2){
//segments [l1, r1], [l2, r2] (segment borders may not be sorted)
//there is an intersection iff segments are neither located
//this way [l1, r1] ... [l2, r2] nor this [l2, r2] ... [l1, r1]
return !(Math.
max(l2, r2
) < Math.
min(l1, r1
) || Math.
max(l1, r1
) < Math.
min(l2, r2
)); }
public static int sign(long n){
if(n < 0) return -1;
if(n > 0) return 1;
return 0;
}
public static boolean segmentsIntersect(long A, long tA, long B, long tB, long C, long tC, long D, long tD){
//find out the equations of the lines segments lie on
//if segments intersect, both endpoints of one are located at
//different half-planes relatively to second line
//a1*X + b1*tX + c1 == 0 //a2*X + b1*tX + c2 == 0
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;
return sign(r1)*sign(r2) <= 0 && sign(r3)*sign(r4) <= 0;
}
{
Scanner in
= new Scanner
(System.
in); long A = in.nextLong(); long tA = in.nextLong();
long B = in.nextLong(); long tB = in.nextLong();
long C = in.nextLong(); long tC = in.nextLong();
long D = in.nextLong(); long tD = in.nextLong();
if(segmentsOverlap(A, B, C, D) == true){
//bots dots either lie in different half-planes or
//at least one of them lies on the segment
boolean r1 = segmentsIntersect(A, tA, B, tB, C, tC, D, tD); //[(A,tA), (B,tB)] and [(C, tC), (D, tD)]
boolean r2 = segmentsIntersect(A, tA, B, tB, C, 0, C, tC); //[(A,tA), (B,tB)] and [(C, 0), (C, tC)]
boolean r3 = segmentsIntersect(A, tA, B, tB, D, tD, D, tD+tB); //[(A,tA), (B,tB)] and [(D, tD), (D, tD+tB)]
boolean r4 = segmentsIntersect(C, tC, D, tD, A, 0, A, tA); //[(C,tC), (D,tD)] and [(A, 0), (A, tA)]
boolean r5 = segmentsIntersect(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)
else
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLm1hdGguKjsKCmNsYXNzIElkZW9uZQp7CgkvL2NoZWNrIGNvbW1vbiBpbnRlcnZhbCBleGlzdGVuY2UKCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBzZWdtZW50c092ZXJsYXAobG9uZyBsMSwgbG9uZyByMSwgbG9uZyBsMiwgbG9uZyByMil7CgkJLy9zZWdtZW50cyBbbDEsIHIxXSwgW2wyLCByMl0gKHNlZ21lbnQgYm9yZGVycyBtYXkgbm90IGJlIHNvcnRlZCkKCQkvL3RoZXJlIGlzIGFuIGludGVyc2VjdGlvbiBpZmYgc2VnbWVudHMgYXJlIG5laXRoZXIgbG9jYXRlZCAKCQkvL3RoaXMgd2F5IFtsMSwgcjFdIC4uLiBbbDIsIHIyXSBub3IgdGhpcyBbbDIsIHIyXSAuLi4gW2wxLCByMV0KCQlyZXR1cm4gIShNYXRoLm1heChsMiwgcjIpIDwgTWF0aC5taW4obDEsIHIxKSB8fCBNYXRoLm1heChsMSwgcjEpIDwgTWF0aC5taW4obDIsIHIyKSk7Cgl9CglwdWJsaWMgc3RhdGljIGludCBzaWduKGxvbmcgbil7CgkJaWYobiA8IDApIHJldHVybiAtMTsKCQlpZihuID4gMCkgcmV0dXJuIDE7CgkJcmV0dXJuIDA7Cgl9CglwdWJsaWMgc3RhdGljIGJvb2xlYW4gc2VnbWVudHNJbnRlcnNlY3QobG9uZyBBLCBsb25nIHRBLCBsb25nIEIsIGxvbmcgdEIsIGxvbmcgQywgbG9uZyB0QywgbG9uZyBELCBsb25nIHREKXsKCQkvL2ZpbmQgb3V0IHRoZSBlcXVhdGlvbnMgb2YgdGhlIGxpbmVzIHNlZ21lbnRzIGxpZSBvbgoJCS8vaWYgc2VnbWVudHMgaW50ZXJzZWN0LCBib3RoIGVuZHBvaW50cyBvZiBvbmUgYXJlIGxvY2F0ZWQgYXQKCQkvL2RpZmZlcmVudCBoYWxmLXBsYW5lcyByZWxhdGl2ZWx5IHRvIHNlY29uZCBsaW5lCgkJLy9hMSpYICsgYjEqdFggKyBjMSA9PSAwCS8vYTIqWCArIGIxKnRYICsgYzIgPT0gMAoJCWxvbmcgYTEgPSB0QS10QjsJCQlsb25nIGEyID0gdEMtdEQ7CgkJbG9uZyBiMSA9IEItQTsJCQkJbG9uZyBiMiA9IEQtQzsKCQlsb25nIGMxID0gQSp0Qi1CKnRBOwkJbG9uZyBjMiA9IEMqdEQtRCp0QzsKCQlsb25nIHIxID0gYTEqQytiMSp0QytjMTsJbG9uZyByMyA9IGEyKkErYjIqdEErYzI7CgkJbG9uZyByMiA9IGExKkQrYjEqdEQrYzE7CWxvbmcgcjQgPSBhMipCK2IyKnRCK2MyOwoJCXJldHVybiBzaWduKHIxKSpzaWduKHIyKSA8PSAwICYmIHNpZ24ocjMpKnNpZ24ocjQpIDw9IDA7Cgl9CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTY2FubmVyIGluID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCQlsb25nIEEgPSBpbi5uZXh0TG9uZygpOyBsb25nIHRBID0gaW4ubmV4dExvbmcoKTsKCQlsb25nIEIgPSBpbi5uZXh0TG9uZygpOwlsb25nIHRCID0gaW4ubmV4dExvbmcoKTsKCQlsb25nIEMgPSBpbi5uZXh0TG9uZygpOyBsb25nIHRDID0gaW4ubmV4dExvbmcoKTsKCQlsb25nIEQgPSBpbi5uZXh0TG9uZygpOyBsb25nIHREID0gaW4ubmV4dExvbmcoKTsKCQlpZihzZWdtZW50c092ZXJsYXAoQSwgQiwgQywgRCkgPT0gdHJ1ZSl7CgkJCS8vYm90cyBkb3RzIGVpdGhlciBsaWUgaW4gZGlmZmVyZW50IGhhbGYtcGxhbmVzIG9yCgkJCS8vYXQgbGVhc3Qgb25lIG9mIHRoZW0gbGllcyBvbiB0aGUgc2VnbWVudAoJCQlib29sZWFuIHIxID0gc2VnbWVudHNJbnRlcnNlY3QoQSwgdEEsIEIsIHRCLCBDLCB0QywgRCwgdEQpOwkJLy9bKEEsdEEpLCAoQix0QildIGFuZCBbKEMsIHRDKSwgKEQsIHREKV0KCQkJYm9vbGVhbiByMiA9IHNlZ21lbnRzSW50ZXJzZWN0KEEsIHRBLCBCLCB0QiwgQywgMCwgQywgdEMpOwkJLy9bKEEsdEEpLCAoQix0QildIGFuZCBbKEMsIDApLCAoQywgdEMpXQoJCQlib29sZWFuIHIzID0gc2VnbWVudHNJbnRlcnNlY3QoQSwgdEEsIEIsIHRCLCBELCB0RCwgRCwgdEQrdEIpOwkvL1soQSx0QSksIChCLHRCKV0gYW5kIFsoRCwgdEQpLCAoRCwgdEQrdEIpXQoJCQlib29sZWFuIHI0ID0gc2VnbWVudHNJbnRlcnNlY3QoQywgdEMsIEQsIHRELCBBLCAwLCBBLCB0QSk7CQkvL1soQyx0QyksIChELHREKV0gYW5kIFsoQSwgMCksIChBLCB0QSldCgkJCWJvb2xlYW4gcjUgPSBzZWdtZW50c0ludGVyc2VjdChDLCB0QywgRCwgdEQsIEIsIHRCLCBCLCB0Qit0RCk7ICAvL1soQyx0QyksIChELHREKV0gYW5kIFsoQiwgdEIpLCAoQiwgdEIrdEQpXQoJCQlpZihyMSB8fCByMiB8fCByMyB8fCByNCB8fCByNSkKCQkJCVN5c3RlbS5vdXQucHJpbnRsbigiWWVzIik7CgkJCWVsc2UgCgkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIk5vIik7CgkJfQoJfQp9