Bread First Search
Υπάρχουν πόλεις σε ένα δίκτυο
μη κατευθυνόμενων δρόμων. Κάθε δρόμος συνδέει ένα ζεύγος πόλων. Η κυβέρνηση αποφάσισε να πραγματοποιήσει μια αναζήτηση με βάση το πλάτος (breadth first search), που σημαίνει την εύρεση μιας διάταξης των
πόλεων τέτοια ώστε αν η σειρά αρχίζει με
:
Κάθε πόλη εκτός από την
γειτνιάζει με μια άλλη πόλη που δόθηκε προηγουμένως στη σειρά.
Οι πόλεις δίνονται με μη φθίνουσα σειρά απόστασης από την
. Εδώ, απόσταση σημαίνει ο ελάχιστος αριθμός δρόμων που πρέπει να διασχίσετε για να φτάσετε σε μια πόλη.
Ωστόσο, κάποιος έκανε κατά λάθος μια αναζήτηση με βάση το ψωμί (bread first search). Βρήκαν την σειρά ,
, ... ,
(αυτό προέκυψε με ταξινόμηση των πόλεων με αυξανόμενη σειρά παραγωγής ψωμιού).
Για να καλύψει αυτό το ντροπιαστικό λάθος, η κυβέρνηση θα ήθελε να κατασκευάσει νέους δρόμους έτσι ώστε το ,
, ... ,
να είναι επίσης μια πιθανή σειρά αναζήτησης με βάση το πλάτος. Οι νέοι δρόμοι μπορούν να κατασκευαστούν μεταξύ δύο οποιωνδήποτε πόλεων. Ποιος είναι ο ελάχιστος δυνατός αριθμός δρόμων που πρέπει να κατασκευαστούν;
Είσοδος
Η πρώτη γραμμή περιέχει τους δύο ακέραιους και
(
,
(
, \(\fraq{N(N-1)}{2}\)).
Η -οστη από τις επόμενες
γραμμές περιέχει τους δύο ακέραιους
και
(
,
), που αντιπροσωπεύουν τα δύο τελικά σημεία του
-οστου δρόμου. Είναι εγγυημένο ότι
και υπάρχει το πολύ ένας δρόμος μεταξύ δύο οποιωνδήποτε πόλεων.
Βαθμολογία
Για από τους
διαθέσιμους βαθμούς,
.
Για επιπλέον από τους
διαθέσιμους βαθμούς,
.
Έξοδος
Σε μία μοναδική γραμμή, εκτυπώστε τον ελάχιστο αριθμό δρόμων που πρέπει να κατασκευαστούν.
Παραδείγματα
input
2 0
output
1
Επεξήγηση του 1ου παραδείγματος
Για να είναι το ,
μια σειρά αναζήτησης με βάση το πλάτος, πρέπει να κατασκευαστεί ένας δρόμος μεταξύ της πόλης
και
.
input
6 3
1 3
2 6
4 5
output
2
Επεξήγηση του 2ου παραδείγματος
Χτίζοντας ένα δρόμο μεταξύ και
και ένα δρόμο μεταξύ
και
, η σειρά των αποστάσεων γίνεται
,
,
,
,
,
η οποία είναι σε μη φθίνουσα σειρά.
Comments