CCC-06 (2006) - S3 (Tin Can Telephone)

View as PDF

Submit solution

Points: 50 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Python
Tin Can Telephone

Η Romy και ο Jules μιλούσαν έως τώρα μεταξύ τους χρησιμοποιώντας τα κινητά τους. Δυστυχώς, οι γονείς τους αντιπαθούν ο ένας τον άλλον και αποφάσισαν ότι δεν τους επιτρέπουν πλέον να τηλεφωνούν ο ένας τον άλλον. Μάλιστα, τους πήραν και τα κινητά τους τηλέφωνα. Έτσι, η Romy και ο Jules πρέπει να βρουν κάποιον άλλο τρόπο για να επικοινωνούν. Αφού έψαξαν στο διαδίκτυο για ιδέες, αποφάσισαν να κατασκευάσουν ένα τηλέφωνο από τενεκεδάκια ("tin can" telephone).

Το τενεκεδένιο τηλέφωνο, είναι απλώς δύο άδεια κουτιά κονσέρβας που συνδέονται μεταξύ τους με ένα κορδόνι. Για να χρησιμοποιηθεί, το κορδόνι πρέπει να είναι τεντωμένο εντελώς και έπειτα ένα άτομο μιλάει ενώ το άλλο άτομο το ακούει. Είναι σημαντικό να μην αγγίζει τίποτα το κορδόνι ώστε να μπορεί να δονείται και να μεταφέρει ήχο από το ένα κουτάκι στο άλλο.

Για να στήσουν επιτυχώς ένα τενεκεδένιο τηλέφωνο, η Romy και ο Jules χρειάζεται να έχουν ανεμπόδιστη οπτική επαφή ανάμεσα στα παράθυρα των υπνοδωματίων τους. Για να διαπιστώσουν εάν μπορούν να "τρέξουν" το κορδόνι ανάμεσα στα δωμάτιά τους, δημιουργούν έναν χάρτη που χρησιμοποιεί απλές ακέραιες συντεταγμένες. Τώρα, σκεφτείτε τις ακόλουθες τρεις περιπτώσεις.

Σε αυτά τα σχήματα, όπου "Romy" είναι το παράθυρο της Romy με συντεταγμένες (grid coordinates) (0,\;0) και όπου "Jules" είναι το παράθυρο του Jules με συντεταγμένες (grid coordinates) (3,\;3). Στο πρώτο σχήμα, υπάρχει ένα κτίριο ανάμεσα στα παράθυρά τους και η οπτική επαφή μεταξύ τους μπλοκάρεται. Στο δεύτερο σχήμα, το κτίριο δεν εμποδίζει την οπτική επαφή ανάμεσά τους και έτσι μπορούν να στήσουν με επιτυχία το τενεκεδένιο τηλέφωνό τους. Στην περίπτωση του τρίτου σχήματος, η εύθεια γραμμή που ξεκινά από τις συντεταγμένες θέσης του παραθύρου της Romy και περνά από τις συντεταγμένες θέσης του παραθύρου του Jules, αγγίζει τη γωνία του κτιρίου. Επειδή δεν πρέπει να αγγίζει τίποτα το κορδόνι για να μπορεί να λειτουργεί το τηλέφωνο, η οπτική επαφή θεωρείται και εδώ μπλοκαρισμένη ( "blocked" ) και έτσι δεν μπορούν να το εγκαταστήσουν.

Είσοδος

Η είσοδος ξεκινά με μια γραμμή που περιέχει τέσσερις ακέραιους αριθμούς, τις συντεταγμένες θέσης των παραθύρων της Romy και του Jules. Έτσι, η είσοδος x_{R}\;y_{R}\;x_{J}\;y_{J} αντιστοιχεί στις συντεταγμένες (x_{R},\;y_{R}) για το παράθυρο της Romy και τις συντεταγμένες (x_{J},\;y_{J}) για το παράθυρο του Jules. Υποθέστε ότι -1000\;\le\;x_{R},\;x_{J}\;\le\;1000 και -1000\;\le\;y_{R},\;y_{J}\;\le\;1000. Η επόμενη γραμμή περιέχει έναν μόνο ακέραιο αριθμό n\;(0 \;\le\; n \;\le\; 100), που αντιστοιχεί στον αριθμό των κτιρίων που θα ακολουθήσουν στις επόμενες n γραμμές. Κάθε κτίριο θα γράφεται σε ξεχωριστή γραμμή, η οποία θα ξεκινά με έναν ακέραιο που θα προσδιορίζει τον αριθμό των γωνιών του κτιρίου. Αυτός ο ακέραιος αριθμός ακολουθείται και από τις ακέραιες συντεταγμένες των γωνιών του κτιρίου,σε σειρά ίδια ή αντίθετη με τη φορά του ρολογιού. Κανένα κτίριο δεν έχει περισσότερες από 32 γωνίες. Το παρακάτω παράδειγμα εισόδου και εξόδου, αντιστοιχεί στην πρώτη περίπτωση μπλοκαρισμένης οπτικής επαφής, που περιγράφηκε προηγουμένως.

Έξοδος

Για τα δεδομένα της εισόδου,θα πρέπει να εξάγετε έναν ακέραιο αριθμό, τον αριθμό των κτιρίων που καθιστούν την οπτική επαφή μπλοκαρισμένη.

Παράδειγμα

input

0 0 3 3
1
4 1 2 2 2 2 1 1 1

output

1

Comments

There are no comments at the moment.