MSE08F - Quick answer

no tags 

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 town i connected with town j?  
 

Input

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.  

Output

Assume 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: 
 

Sample


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. 
Input :
4 
c 1 2 
c 3 4 
q 1 3 
c 2 3 
q 1 4 
d 2  
q 4 1 
q 2 4  
e 
Ouput: 
2 2 

hide comments
biQar: 2010-10-04 14:40:18

This problem must go back to classical again .

যোবায়ের: 2010-09-30 17:15:37

Edit: IMO, this should be put back in classical.

Last edit: 2010-09-30 18:37:06
[Trichromatic] XilinX: 2009-04-10 03:26:43

This problem is moved to tutorial section because a similar (almost the same) problem STARGATE is available in the classical problem set.


Added by:psetter
Date:2009-04-10
Time limit:0.100s-5.684s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS-RHINO NODEJS PERL6 VB.NET
Resource:Southeastern European 2008