2748. Quick answer

单点时限: 5.0 sec

内存限制: 256 MB

Joe is fond of computer games. Now, he must solve a puzzling situation. In front of his eyes lies a huge map with fortified towns. His enemy is a very powerful and tricky character who can connect and disconnect the towns by giving some commands. Two towns are connected if they have been directly connected or interconnected through some other connected towns at some moment in time. When a town is disconnected it gets isolated and clears its own connection history, not the connection history of the other towns. Each connection is bi-directional. Initially the towns are isolated. Joe is asked to answer quickly if two towns are connected, according to the history of the character’s commands.

Write a program which based on information input from a text file counts the number of yes

answers and the number of no answers to questions of the kind: is towni connected with townj?


The program reads data from a text file. Each data set in the file stands for a particular map and the associated character’s commands, as follows:

1) The number of towns on the map N (N ≤ 10000);

2) A list of commands of the form:

a) c towni townj, where towni and townj are integers from 1 to no_of_towns. The command means that towni and townj get connected.

b) d towni, where towni is an integer from 1 to no_of_towns. The command means

that towni gets disconnected.

c) q towni townj, where towni and townj are integers from 1 to no_of_towns. The

command stands for the question: is towni connected with townj?

d) e, that ends the list of commands

Each command is on a separate line. Commands (a), (b), (c) can appear in any order. The towns’

connectivity is updated after each command of type (a) or (b). Each command of type (c) is

processed according to the current configuration.


For example, the input file illustrated in the figure bellow corresponds to only one data set which stands for a map with 4 fortified towns. The character gives 9 commands. There are N1 yes answered questions and N2 no answered questions. The program prints these two numbers to the standard output on the same line, in the order: N1 , N2 as shown in the figure:


c 1 2
c 3 4
q 1 3
c 2 3
q 1 4
d 2
q 4 1
q 2 4
2 , 2

23 人解决,31 人已尝试。

31 份提交通过,共有 110 份提交。

4.9 EMB 奖励。

创建: 14 年,1 月前.

修改: 6 年,3 月前.

最后提交: 1 年,1 月前.

来源: Southeastern European Regional Programming Contest 2008