Surfin'
Κάθε ιστοσελίδα αναγνωρίζεται από μια σειρά χαρακτήρων γνωστών ως URL (Uniform Resource Locator). Οι ιστοσελίδες μορφοποιούνται με χρήση HTML (Hypertext Markup Language). Η HTML έχει πολλούς κώδικες, γνωστούς ως σήμανση (markup), που επιτρέπουν στον συγγραφέα να καθορίσει τη μορφή των σελίδων καθώς και να καθορίσει συνδέσμους προς άλλες σελίδες. Για αυτό το πρόβλημα, μας απασχολεί μόνο η σήμανση που προσδιορίζει συνδέσμους προς άλλες σελίδες σε μια δεδομένη σελίδα.
Ένας σύνδεσμος εντός της σελίδας υποδηλώνεται ως <A HREF="URL">
όπου η διεύθυνση URL είναι η διεύθυνση URL κάποιας άλλης σελίδας. Ένας χρήστης που βλέπει μια σελίδα που περιέχει έναν σύνδεσμο μπορεί να κάνει κλικ στον σύνδεσμο για να δει την άλλη σελίδα.
Πρέπει να γράψετε ένα πρόγραμμα που να διαβάζει έναν αριθμό ιστοσελίδων και τις σχετικές διευθύνσεις URL. Για κάθε σύνδεσμο σε κάθε σελίδα, πρέπει να εκτυπώσετε τη διεύθυνση URL της σελίδας που περιέχει τον σύνδεσμο και τη διεύθυνση URL της σελίδας στην οποία αναφέρεται ο σύνδεσμος.
Μετά την τελευταία σελίδα, σας δίνονται πολλά ζεύγη διευθύνσεων URL. Για κάθε ζεύγος πρέπει να υποθέσετε ότι προβάλλετε τη σελίδα που προσδιορίζεται από την πρώτη διεύθυνση URL και να προσδιορίσετε εάν είναι δυνατό να κάνετε κλικ σε μια ακολουθία συνδέσμων ώστε να προβάλετε τη σελίδα που προσδιορίζεται από τη δεύτερη διεύθυνση URL. Αν ναι, θα πρέπει να εκτυπώσετε τη φράση "Can surf from here to there.", όπου εδώ και εκεί υπάρχουν οι δύο διευθύνσεις URL. Εάν όχι, θα πρέπει να εκτυπώσετε τη φράση "Can't surf from here to there."
Η πρώτη γραμμή εισόδου περιέχει έναν ακέραιο αριθμό , τον αριθμό των ιστοσελίδων. Για κάθε ιστοσελίδα, θα υπάρχει μια γραμμή που περιέχει τη διεύθυνση URL της, ακολουθούμενη από πολλές γραμμές που περιέχουν τη σελίδα. Η διεύθυνση URL θα αποτελείται από έως και μη κενούς, εκτυπώσιμους χαρακτήρες και δεν θα περιέχει εισαγωγικά. Η πρώτη γραμμή της σελίδας θα είναι <HTML> και η τελευταία γραμμή θα είναι </HTML>. Κάθε σελίδα θα περιέχει έως και συνδέσμους στη μορφή που περιγράφεται παραπάνω. Κάθε σύνδεσμος θα περιέχεται σε μία μόνο γραμμή εισόδου. Οι διευθύνσεις URL στον σύνδεσμο θα είναι αυτές των σελίδων που δίνονται στην είσοδο. Οι λέξεις-κλειδιά της σήμανσης (markup) A, HREF και HTML θα εμφανίζονται μόνο με κεφαλαία.
Μετά τις σελίδες θα υπάρχουν πολλά ζεύγη γραμμών που δίνουν διευθύνσεις URL που απαιτούνται από το πρόβλημα, όπως ορίζεται παραπάνω. Η τελευταία γραμμή εισόδου θα είναι η φράση "The End". Για κάθε ζευγάρι, εκτυπώστε το κατάλληλο μήνυμα που δίνεται παραπάνω.
Παράδειγμα
input
3
http://ccc.uwaterloo.ca
<HTML> <TITLE>This is the CCC page</TITLE>
Hello there boys
and girls. <B>Let's</B> try <A HREF="http://abc.def/ghi"> a
little
problem </A>
</HTML>
http://abc.def/ghi
<HTML> Now is the <TITLE>time</TITLE> for all good people to program.
<A HREF="http://www.www.www.com">hello</A><A HREF="http://xxx">bye</A>
</HTML>
http://www.www.www.com
<HTML>
<TITLE>Weird and Wonderful World</TITLE>
</HTML>
http://ccc.uwaterloo.ca
http://www.www.www.com
http://www.www.www.com
http://ccc.uwaterloo.ca
The End
output
Link from http://ccc.uwaterloo.ca to http://abc.def/ghi
Link from http://abc.def/ghi to http://www.www.www.com
Link from http://abc.def/ghi to http://xxx
Can surf from http://ccc.uwaterloo.ca to http://www.www.www.com.
Can't surf from http://www.www.www.com
Comments