Son zamanlar keçirilən proqramlaşdırma müsabiqəsində iştirakçılara döşəmələrin düzbucaqlı plitələrlə döşənməsi ilə bağlı bir məsələ təqdim olunmuşdu. Giriş spesifikasiyası aşağıdakı kimidir:
Giriş bir neçə döşəmədən ibarətdir. İlk sətir döşəmələrin sayını göstərir. Hər bir döşəmə bir neçə sətirdə təsvir olunur. İlk sətir döşəmənin uzunluğunu və enini millimetrlə ifadə edən iki müsbət tam ədəd ehtiva edir. Döşəmənin uzunluğu və eni maksimum 40 000 mm ola bilər. Növbəti sətir plitələrin sayını göstərən bir rəqəmi ehtiva edir: t (1 ≤ t ≤ 100). Sonrakı t sətirin hər biri bir plitənin təsvirini ehtiva edir. Plitə dörd tam ədəd ilə verilir:
xl yl xh yh
burada (xl, yl) plitənin sol alt küncünün koordinatlarıdır və (xh, yh) plitənin sağ üst küncünün koordinatlarıdır. Plitə həmişə müsbət sahəyə malikdir. Döşəmənin və plitənin koordinatları əlbəttə ki, üst-üstə düşür. Plitələrin bir-birindən ayrı olduğunu və döşəməni tamamilə və yalnız döşəməni əhatə etdiyini qəbul edə bilərsiniz. Bu spesifikasiyanın son sətiri bəzi problemlər yaratdı. İştirakçılar üçün deyil, hakimlər üçün. Test hallardan bəziləri çoxlu plitələrdən ibarətdir. Giriş faylının bu şərtə uyğun olduğunu necə əmin ola bilərik? Bizə lazım olan bu şərti yoxlayan bir proqramdır.
Problem
Yuxarıdakı formatda verilmiş giriş faylına əsasən, hər bir döşəmə üçün plitələrin:
ayrı olub-olmadığını,
döşəmədən kənara çıxmadığını,
döşəməni tamamilə əhatə etdiyini
müəyyən edin.
Giriş bir neçə döşəmədən ibarətdir. İlk sətir döşəmələrin sayını göstərir. Hər bir döşəmə bir neçə sətirdə təsvir olunur. İlk sətir döşəmənin uzunluğunu və enini millimetrlə ifadə edən iki müsbət tam ədəd ehtiva edir. Döşəmənin uzunluğu və eni maksimum 40 000 mm ola bilər. Növbəti sətir plitələrin sayını göstərən bir rəqəmi ehtiva edir: t (1 ≤ t ≤ 100). Sonrakı t sətirin hər biri bir plitənin təsvirini ehtiva edir. Plitə dörd tam ədəd ilə verilir:
xl yl xh yh
burada (xl, yl) plitənin sol alt küncünün koordinatlarıdır və (xh, yh) plitənin sağ üst küncünün koordinatlarıdır. Plitə həmişə müsbət sahəyə malikdir. Döşəmənin və plitənin koordinatları əlbəttə ki, üst-üstə düşür.
Hər bir döşəmə üçün çıxış bir sətirdən ibarət olmalıdır və aşağıdakı sözlərdən birini ehtiva etməlidir:
NONDISJOINT əgər üst-üstə düşən plitələr varsa;
NONCONTAINED əgər üst-üstə düşən plitələr yoxdursa, lakin bəzi plitələr döşəmədən kənara çıxırsa;
NONCOVERING əgər üst-üstə düşən plitələr yoxdursa və heç bir plitə döşəmədən kənara çıxmırsa, lakin döşəmənin bəzi hissələri örtülməyibsə;
OK əgər bunların heç biri doğru deyilsə.
Nümunə 1