RPLG - Goto & labels

no tags 

Vero is working on an important company, the company noticed that Vero codes using goto labels, her boss does not want Vero to code this kind of programs, the boss tells her that he will cut her payment by the number of lines contained between the label and the goto.

 

Vero does not know any iterative structures, and she is too worried to code the program she is asking you for, Code a solution for Vero's problem.

 

The solution to this is to count the lines of code that are between the label and the goto statement, having in consideration that the goto will always return to an existent label, the label will consist on a single string formed by letters from the 'a' to the 'z' and from the 'A' to the 'Z', all labels will have the format as the goto will always contains the format goto , however, remember that before the labels and the gotos you can have an important amount of spaces that will count as an indentation of a code.

Note: An uppercase letter label is distinct from a lowercase letter label, by example: 'abc' is not equal to 'ABC'

 

INPUT:

The first line of input will contain an integer T denoting the T test cases, then, T cases will follow. Each of the following line will contain an integer N, then, N lines will follow, each of the next N lines will contain a string S.

 

OUTPUT:

Output the string “Scenario #i: “ where i is the test case you are analyzing followed by the sum of the number of lines between the label and the goto.

 

SAMPLE DATA:

 

INPUT

OUTPUT

3

6

A:

      SPACES will InDeNt the CoDe

      No TaBs ArE iN the >> test << data

goto A;

B:

goto B;

7

B:

A:

cin >> n;

    if(n<0) then

       goto A;

    else

       goto B;

7

       A:

         TumbaBicho:

           printf("goto TumbaBicho");

       printf("goto TumbaBicho");

     goto TumbaBicho;

AA:

           goto A;

Scenario #1: 2

Scenario #2: 7

Scenario #3: 7

 

CONSTRAINTS:

1<=N<=10000

1<= Length of string <= 1000


hide comments
Piyush Raman Srivastava: 2014-01-23 17:07:22

Thanks to the constraints clarification by @:D !!

Last edit: 2014-01-23 17:22:54
Brian Curcio: 2012-07-23 23:38:38

My bad, didn't read there could be multiple goto's for same label

Last edit: 2012-07-23 23:54:24
Zhouxing Shi: 2012-07-14 07:24:57

I've just understand the problem!

Srijan Kumar: 2012-05-26 19:58:30

Are these assumptions ok:
A label occurs before its corresponding gotos occur
and
there are no empty(blank) lines in the inputs

Also, in the problem statement, it is said that the gotos are of the form goto

Last edit: 2012-05-26 19:59:47
Samuel Nacache: 2012-05-26 19:58:30

One of my favorite problems =D
Felix dice: jalabolas.

Last edit: 2012-06-30 02:31:19
david_8k: 2012-05-26 19:58:30

Your program must support multiple jumps, however, there will be no labels with the same name and the goto will contain any existíng label from 0 to n-1, being n the line of the goto... Hope this helps

:D: 2012-05-26 19:58:30

As I understand the description, there is no such guarantee. You should implement multiple jumps.

More importantly the goto and label "commands" must not be followed by any code in the same line! Please clarify in the description that there can be nothing more in the given lines.

Saurabh Jain: 2012-05-26 19:58:30

nice problem !!


Added by:david_8k
Date:2012-05-05
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:Own Problem used for the RPL contest