Αρχική > 25ος ΠΔΠ

25ος ΠΔΠ Καμπ (κοινά)
Τηλεφωνικό δίκτυο (network)

Μία εταιρεία τηλεπικοινωνιών σχεδιάζει ένα νέο τηλεφωνικό δίκτυο. Το δίκτυο θα συνδέει \(N\) θέσεις, αριθμημένες από \(1\) έως \(N\). Οι γραμμές μεταξύ των θέσεων είναι διπλής κατεύθυνσης. Από κάθε θέση μπορεί κανείς να τηλεφωνήσει σε οποιαδήποτε άλλη θέση, η σύνδεση όμως μπορεί να μην είναι απευθείας αλλά να γίνεται μέσω άλλων, ενδιάμεσων θέσεων που δρουν ως μεταγωγείς.

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

Γράψτε ένα πρόγραμμα που να βρίσκει όλες τις κρίσιμες θέσεις στο δίκτυο.

Αρχεία Εισόδου (network.in):

Η πρώτη γραμμή της εισόδου θα αποτελείται από δύο φυσικούς αριθμούς \(N\) και \(K\): το πλήθος των θέσεων και το πλήθος των απευθείας συνδέσεων μεταξύ αυτών. Κάθε μία από τις επόμενες \(K\) γραμμές θα περιέχει δύο αριθμούς, που θα ορίζουν τα άκρα μίας απευθείας σύνδεσης.

Αρχεία Εξόδου (network.out):

Η έξοδος πρέπει να αποτελείται από μία γραμμή που να περιέχει μόνο έναν φυσικό αριθμό: το πλήθος των κρίσιμων θέσεων στο δίκτυο.

Παραδείγματα Αρχείων Εισόδου - Εξόδου:

1o

network.in network.out
5 4
2 5
4 5
5 3
1 5
1

Εξήγηση 1ου παραδείγματος: Στο 1ο παράδειγμα η μοναδική κρίσιμη θέση είναι η \(5\).

2o

network.in network.out
6 5
3 2
2 1
2 5
5 4
6 5
2

Εξήγηση 2ου παραδείγματος: Στο 2ο παράδειγμα υπάρχουν δύο κρίσιμες θέσεις, η \(2\) και η \(5\).

Περιορισμοί:

  • \(3 \leq N \leq 10.000\).
  • \(2 \leq K \leq 100.000\).
  • Όριο χρόνου εκτέλεσης: \(1\) sec.
  • Όριο μνήμης: \(64\) MB.