COI-07 (2007) - 2 (Policija)

View as PDF

Submit solution

Points: 100 (partial)
Time limit: 3.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Python
Policija

Για να βοηθήσει στη σύλληψη εγκληματιών υπό διωγμό, η αστυνομία εισάγει ένα νέο σύστημα πληροφορικής. Η περιοχή που καλύπτεται από την αστυνομία περιέχει N πόλεις και E αμφίδρομους δρόμους που τις συνδέουν. Οι πόλεις έχουν ετικέτες από 1 έως N.

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

  1. Θεωρήστε δύο πόλεις A και B και έναν δρόμο που συνδέει τις πόλεις G_1 και G_2. Μπορούν οι εγκληματίες να πάνε από την πόλη \mathbf{A} στην πόλη \mathbf{B} εάν αυτός ο ένας δρόμος είναι αποκλεισμένος και οι εγκληματίες δεν μπορούν να τον χρησιμοποιήσουν;
  2. Σκεφτείτε τρεις πόλεις A, B και C. Μπορούν οι εγκληματίες να πάνε από την πόλη \mathbf{A} στην πόλη \mathbf{B} αν ολόκληρη η πόλη \mathbf{C} αποκλειστεί και οι εγκληματίες δεν μπορούν να μπουν σε αυτή την πόλη;

Γράψτε ένα πρόγραμμα που υλοποιεί το περιγραφόμενο σύστημα.

Είσοδος

Η πρώτη γραμμή περιέχει δύο ακέραιους αριθμούς N και E (2 \le N \le 100\,000,\,1 \le E \le 500\,000), τον αριθμό των πόλεων και δρόμων.

Κάθε μία από τις ακόλουθες E γραμμές περιέχει δύο διακριτούς ακέραιους αριθμούς μεταξύ 1 και N – τις ετικέτες δύο πόλεων που συνδέονται με δρόμο. Θα υπάρχει το πολύ ένας δρόμος μεταξύ οποιουδήποτε ζεύγους πόλεων.

Η ακόλουθη γραμμή περιέχει τον ακέραιο Q (1 \le Q \le 300\,000), τον αριθμό των ερωτημάτων που δοκιμάζεται το σύστημα.

Κάθε μία από τις ακόλουθες Q γραμμές περιέχει τέσσερις ή πέντε ακέραιους αριθμούς. Ο πρώτος από αυτούς τους ακέραιους αριθμούς είναι ο τύπος του ερωτήματος – 1 ή 2.

Εάν το ερώτημα είναι τύπου 1, τότε η ίδια γραμμή περιέχει τέσσερις ακόμη ακέραιους αριθμούς A, B, G_1 και G_2 όπως περιγράφεται προηγουμενως. Το A και το B θα είναι διαφορετικά. Τα G_1 και G_2 θα αντιπροσωπεύουν έναν υπάρχοντα δρόμο.

Εάν το ερώτημα είναι τύπου 2, τότε η ίδια γραμμή περιέχει τρεις ακόμη ακέραιους αριθμούς A, B και C. Τα A, B και C θα είναι διακριτοί ακέραιοι αριθμοί.

Τα δεδομένα των δοκιμών θα είναι τέτοια ώστε να είναι αρχικά δυνατή η μετάβαση από κάθε πόλη σε κάθε άλλη πόλη.

Έξοδος

Τυπώστε τις απαντήσεις σε όλα τα ερωτήματα Q, μία ανά γραμμή. Η απάντηση σε ένα ερώτημα μπορεί να είναι "yes" ή "no".

Σημείωση: εάν το πρόγραμμά σας απαντήσει σωστά σε όλες τις ερωτήσεις του ενός τύπου αλλά όχι του άλλου, θα λάβει 50% της βαθμολογίας για εκείνη την περίπτωση. Ακόμη και τότε το πρόγραμμά σας πρέπει να απαντά σε όλα τα ερωτήματα Q (τα άλλα ερωτήματα μπορούν να απαντηθούν αυθαίρετα).

Παράδειγμα

input

13 15
1 2
2 3
3 5
2 4
4 6
2 6
1 4
1 7
7 8
7 9
7 10
8 11
8 12
9 12
12 13
5
1 5 13 1 2
1 6 2 1 4
1 13 6 7 8
2 13 6 7
2 13 6 8

output

yes
yes
yes
no
yes

Comments

There are no comments at the moment.