Per aiutarti con questo task, abbiamo preparato delle tracce di soluzione, che includono solo le parti di lettura dell'input e scrittura dell'output (da tastiera e su schermo). Puoi decidere se leggere/scrivere su file decommentando le opportune righe di codice.
- Scarica la traccia in C: cestini.c
- Scarica la traccia in C++: cestini.cpp
- Scarica la traccia in C#: cestini.cs
- Scarica la traccia in Go: cestini.go
- Scarica la traccia in JavaScript: cestini.html
- Scarica la traccia in Java: cestini.java
- Scarica la traccia in Pascal: cestini.pas
- Scarica la traccia in Python: cestini.py
- Scarica la traccia in VisualBasic: cestini.vb
Tommaso ha oggetti e cestini in camera. Ogni oggetto è rappresentato da una lettera dell'alfabeto maiuscola, da a . I cestini sono numerati da a . Ogni cestino ha una capacità illimitata e vi è un ordine fra gli elementi al suo interno: l'elemento in posizione è sul fondo, quello in posizione si trova subito sopra, e così via.
Inizialmente, tutti gli oggetti si trovano in ordine nel cestino , e il loro ordine è dato da una stringa di lunghezza . Il primo carattere di rappresenta l'oggetto in posizione , e così via. Tuttavia, quando è annoiato, Tommaso passa il tempo spostando gli oggetti fra i cestini! In particolare, sposta l'oggetto dalla cima di un cestino alla cima di un altro cestino.
Aiuta Tommaso a tenere traccia degli oggetti nella sua camera, stando sempre pronto a dirgli qual è l'oggetto in una certa posizione di un certo cestino, gestendo i suoi spostamenti e domande.
La prima riga del file di input contiene un intero , il numero di casi di test. Seguono casi di test, numerati da a . Ogni caso di test è preceduto da una riga vuota.
Ogni caso di test è composto come segue:
s
indica uno spostamento: l'oggetto in cima al cestino è stato spostato in cima al cestino (è garantito che il cestino contiene almeno un oggetto al momento dello spostamento);c
indica un controllo: Tommaso vuole sapere qual è il -esimo oggetto dal fondo nel cestino (è garantito che il cestino contiene almeno oggetti al momento del controllo).Il file di output deve contenere la risposta ai casi di test che sei riuscito a risolvere. Per ogni caso di test che hai risolto, il file di output deve contenere una riga con la dicitura:
Case #t: ans ...
dove t
è il numero del caso di test (a partire da ) e ans
è una stringa che rappresenta le risposte ai controlli di Tommaso. L'-esimo carattere della stringa è una lettera maiuscola che rappresenta la risposta all'-esimo controllo.
Input:
2
3 3 2
ABC
s 0 1
c 1 0
4 3 6
BCBA
s 0 1
c 1 0
s 0 2
s 1 2
c 2 1
c 0 0
Output:
Case #1: C
Case #2: AAB
Nel primo caso di esempio, l'oggetto , in cima al cestino , viene spostato in cima al cestino .
Nel secondo caso di esempio: