Module: Geometri


Problem

5 /7


Alım Ustası

Theory Click to read/hide

Kavşak

Çizgilerin
kesişme noktası

a1, b1, c1 - ilk satırın katsayıları,
a2, b2, c2 - ikinci satırın katsayıları,
x, y - kesişme noktası.

\(x = {-(c1 \cdot b2 - c2 \cdot b1) \over (a1 \cdot b2 - a2 \cdot b1)} \\ y = {-(a1 \ cdot c2 - a2 \cdot c1) \over (a1 \cdot b2 - a2 \cdot b1)} \)

Kesişim için çizgileri nasıl kontrol edeceğimizi (paralel değiller) ve kesişme noktalarını nasıl bulacağımızı zaten biliyoruz.

Şimdi bunu segmentlerle nasıl yapacağımızı öğrenelim. 

Öncelikle, bunların kesişme açısından nasıl kontrol edileceğini öğrenelim.

Segmentler kesişir eğer birinin uçları diğerinin zıt tarafındaysa veya tersi ise (bu, çapraz çarpımla kolaylıkla kontrol edilebilir).  Bunun işe yaramayacağı tek durum, segmentlerin tek bir düz çizgi üzerinde yer almasıdır. Bunun için, sözde kesişme noktasını kontrol etmeniz gerekir. sınırlayıcı kutu (segmentin sınırlayıcı kutusu) - X ve Y üzerindeki segmentlerin izdüşümünün kesişimini kontrol edin.

eksenler.

Artık segmentlerin kesişim noktalarını nasıl kontrol edeceğimizi öğrendiğimize göre, kesişme noktalarını (veya segmentlerini) nasıl bulacağımızı öğrenelim:
- kesişmezlerse, böyle bir noktanın olmadığı açıktır;
- Aksi takdirde, bu segmentlerin üzerinde bulunduğu düz çizgiler oluşturacağız.

Paralel iseler, segmentler aynı doğru üzerinde yer alır ve segmentlerin sol sınırlarının maksimumundan sağ kenarlarının minimumuna kadar kesişen parçayı bulmamız gerekir ( nokta diğer noktadan daha küçüktür, eğer solda ise, eşitlik durumunda X-koordinatları - daha düşükse).

Çizgiler paralel değilse, kesişme noktalarını bulun ve geri getirin.

Problem

Venceslav geçenlerde yeni bir pikap kitabı okudu ve şimdi parkta bilgisini sınamak istiyor. Kolaylık olsun diye, parkı bir düzlemde parçalar olan bir dizi patika olarak düşünelim. Wenceslas zaten bu parkta yürüdü ve hangi kızın hangi yolda yürüdüğünü biliyor. Sorun şu ki, Wenceslas çok tembel ve sadece tek bir yolda yürüyor. Ayrıca yol boyunca ne tür kızlarla tanışabileceğini bulamayacak kadar tembel ve bu nedenle en iyi arkadaşı olan Sizden bu zor konuda ona yardım etmenizi istedi.
 
Giriş
İlk satır, yolun sonlarının koordinatlarını içerir (X1, Y1) ve Wenceslas'ın yürüdüğü ( X2, Y2) (\(- 20 <= X1, Y1, X2, Y2 <= 20\)).
İkinci satır bir tamsayı N içerir - kızların yürüdüğü yolların sayısı (\(0 <= N <= 5\) ).
Aşağıdaki N satıra kızların yürüdüğü yolların uçlarının koordinatlarını girin (Xi1, Yi1< /sub>) ve (Xi2, Yi2 ), tarafından i -inci yol yürüyüş i-th girl (\(-20 <= X_{i1}, Y_ {i1}, X_{i2 }, Y_{i2} <= 20\))
 
Çıktı
İlk satıra yolları Wenceslas'ın yolu ile kesişecek olan kızların sayısı olan M sayısını yazdırın (yollara dokunmak bir kesişme olarak kabul edilir).
İkinci satıra M sayılarını yazdırın - kahramanımızın buluşacağı kızların sayısı. Kızlar birden başlayarak numaralandırılır!
 
Örnekler

 

# Girdi Çıktı
1
0 0 2 2
1
0 2 2 0
1
1