یکی بود یکی نبود. کوتولهآباد سرزمینی بود که چند خانوادهی کوتوله در آن زندگی میکردند. هر خانواده در یک خانه ساکن بود. کوتولهها غالبا دوستانشان از خانوادههای دیگر را ملاقات میکردند. ناگهان آدمهای بزرگ تصمیم گرفتند چند بزرگراه مستقیم احداث کنند که بعضی از طرحهای پیشنهادی برای این بزرگراهها از میان کوتولهآباد میگذشت. کوتولهها آنقدر کوچک و کند بودند که نمیتوانستند سالم از بزرگراه عبور کنند.
کوتولهها دوست ندارن یک بزرگراه خانههایشان را به دو بخش ناتهی تقسیم کند. آنها پس از آنکه بفهمند کدام بزرگراه مطابق میل آنها نیست میتوانند با جادوجنبل جلوی احداث آن را بگیرند. شما به این کوتولهها که حتی دستهایشان به صفحهی کلید هم نمیرسد کمک کنید.
مسئله
N نقطه (خانههای کوتولهها) در صفحه و چند خط مستقیم (بزرگراهها) داده شدهاند. برای هر خط باید تعیین کنید که آیا همهی نقطهها در یک طرف آن خط واقع هستند یا خیر. برنامه شما باید با خواندن مشخصات یک خط پاسخ مربوط به آن را در خروجی چاپ کند قبل از آنکه مشخصات خط بعدی را بخواند. میتوانید فرض کنید که هیچ بزرگراهی از میان خانهای نمیگذرد.
برنامهی شما باید ورودی را از ورودی استاندارد بخواند. اولین سطر ورودی حاوی یک عدد صحیح N ( 0≤N≤105 ) است. در N سطر بعدی، i امین سطر حاوی دو عدد حقیقی xi و yi ( −109≤xi,yi≤109 ) است که با یک فاصله از هم جدا شدهاند و مختصات خانهی i ام را نشان میدهد. هر یک از سطرهای بعدی حاوی چهار عدد حقیقی X1,Y1,X2,Y2 (از چپ به راست) ( −109≤X1,Y1X2,Y2≤109 ) که توسط فاصله از هم جدا شدهاند است. این عددها مختصات دو نقطهی متمایز [X1,Y1] و [X2,Y2] واقع بر یک بزرگراه هستند.
خروجی را در خروجی استاندارد بنویسید. برای هر سطر ورودی، خروجی برنامه شما باید یک سطر حاوی رشتهی GOOD باشد اگر همهی نقطهها در یک طرف آن خط قرار داشته باشند و در غیر این صورت حاوی رشتهی BAD باشد. پس از نوشتن هر سطر در خروجی برنامهی شما باید بافر فایل خروجی را flush کند. در بخشهای بعد میتوانید مثالی از این که چگونه این کار را انجام دهید بیابید.
ما برنامههای شما را پس از آنکه پساخ مربوط به آخرین بزرگراه را داد متوقف میکنیم. توجه کنید که برنامهی شما نباید خودش متوقف شود. میتوانید فرض کنید که بیش از 105 بزرگراه وجود ندارد.
هشدار
توصیه میشود که از دادهگونهی double برای ذخیرهی اعداد حقیقی استفاده کنید. توجه کنید که هنگام استفاده از حساب اعداد حقیقی ممکن است خطاهای «گرد کردن» ظاهر شود. اگر میخواهید ببینید دو عدد حقیقی x و y مساوی هستند یا خیر از آزمون x=y استفاده نکنید و به جای آن از |x−y|<e استفاده کنید که e یک عدد ثابت کوچک است. (برای e مقدار 10−4 توصیه میشود.)