Oppure

Loading
02/04/09 12:07
kopiro91
Descrizione del problema

Al porto sono arrivati N container della sostanza chimica di tipo A e N container della sostanza chimica di tipo B. I container sono stati caricati, uno dietro l'altro, su di un treno che ne può contenere 2N+2. Le posizioni dei container sul treno sono numerate da 1 a 2N+2. Il carico è stato fatto in modo che gli N container di tipo A occupino le posizioni da 1 a N, mentre quelli di tipo B da N+1 a 2N; le rimanenti due posizioni 2N+1 e 2N+2 sono vuote.

Per motivi connessi all'utilizzo delle sostanze chimiche nella fabbrica alla quale sono destinate, i container vanno distribuiti sul treno a coppie: ciascun container per la sostanza di tipo A deve essere seguito da uno di tipo B. Occorre quindi che nelle posizioni dispari (1, 3, 5, ..., 2N-1) vadano sistemati esclusivamente i container di tipo A mentre in quelle pari (2, 4, 6, ..., 2N) quelli di tipo B, lasciando libere le ultime due posizioni 2N+1 e 2N+2.

A tal fine, viene impiegata una grossa gru, che preleva due container alla volta, in posizioni consecutive i, i+1, e li sposta nelle uniche due posizioni consecutive j, j+1 libere nel treno (inizialmente, j = 2N+1). Tale operazione è univocamente identificata dalla coppia (i,j), dove entrambe le posizioni i e i+1 devono essere occupate da container mentre j e j+1 devono essere entrambe vuote.

Per esempio, con N = 4, abbiamo inizialmente la configurazione A A A A B B B B * *, dove le due posizioni vuote sono indicate da un asterisco *:

* Il primo spostamento della gru è (4,9) e porta alla configurazione:
A A A * * B B B A B
1 2 3 4 5 6 7 8 9 10
* Il secondo spostamento è (6, 4) e porta alla configurazione:
A A A B B * * B A B
1 2 3 4 5 6 7 8 9 10
* Il terzo spostamento è (2, 6) e porta alla configurazione:
A * * B B A A B A B
1 2 3 4 5 6 7 8 9 10
* Il quarto spostamento è (5,2) e porta alla configurazione:
A B A B * * A B A B
1 2 3 4 5 6 7 8 9 10
* Il quinto e ultimo spostamento è (9,5) e porta alla configurazione desiderata:
A B A B A B A B * *
1 2 3 4 5 6 7 8 9 10

Notare che per N=4 è possibile, con cinque spostamenti, sistemare i 2N container nell'ordine giusto. Scrivere quindi un programma che determini la successione degli spostamenti eseguiti dalla gru per ottenere un analogo risultato nel caso in cui 3 ≤ N ≤ 1000. Si richiede inoltre che il numero K di tali spostamenti non superi il valore 3N.
Dati di input

Il file input.txt è composto da una sola riga, contenente l'intero N che rappresenta il numero di container per ciascuna delle due sostanze.
Dati di output

Il file output.txt è composto da K+1 righe.

La prima riga contiene due interi positivi separati da uno spazio, rispettivamente il numero K di spostamenti operati dalla gru e il numero N di container per ciascuna delle due sostanze

Le righe successive contengono la sequenza di K spostamenti del tipo (i,j), tali che partendo dalla sequenza AAA...ABBB...B**, si arrivi alla sequenza ABABAB...AB** con le regole descritte sopra. Ciascuna delle righe contiene una coppia di interi positivi i e j separati da uno spazio a rappresentare lo spostamento (i,j).
Assunzioni

* 3 ≤ N ≤ 1000,
* 1 ≤ i,j ≤ 2N+1,
* K ≤ 3 N.

Esempi di input/output

File input.txt    File output.txt

3

    

4 3
2 7
6 2
4 6
7 4


File input.txt    File output.txt

4

    

5 4
4 9
6 4
2 6
5 2
9 5


File input.txt    File output.txt

5

    

10 5
2 11
8 2
5 8
10 5
1 10
3 1
5 3
7 5
9 7
11 9


Nota/e

* Un programma che restituisce sempre lo stesso valore, indipendentemente dai dati in input.txt, non totalizza alcun punteggio in aggiunta a quello ottenuto per la sua compilazione.



CHI MI PUO AIUTARE???? se volete e se lo sapete fare.
aaa
02/04/09 13:35
HeDo
Postato originariamente da kopiro91:
CHI MI PUO AIUTARE???? se volete e se lo sapete fare.


se lo vogliamo fare

visto che qualcuno che non si è nemmeno sbattuto a scrivere una riga di codice
aaa
02/04/09 13:57
Il_maca
Postato originariamente da HeDo:

Postato originariamente da kopiro91:
CHI MI PUO AIUTARE???? se volete e se lo sapete fare.


se lo vogliamo fare

visto che qualcuno che non si è nemmeno sbattuto a scrivere una riga di codice


quoto!! e se non sbaglio questo problema viene dall'itis dell'erba dio castellana grotte vero??t'ho sgamato!!! questa community serve per apprendere e conoscere nuove tecniche!! non per fare i vostri compiti per casa!!! ank'io ho abusato dei forum, ma per trovare risposte ke nemmeno i prof sapevano, sanno e sapranno spiegarmi!!
io proporrei di kiudere questo post!
aaa
02/04/09 16:45
pierotofy
Intanto moderiamo le frasi, non c'è bisogno di scannarsi così e anzi, NON bisogna scannarsi così, anche se il nostro utente non ha postato neanche una riga di sorgente.

Piuttosto chiediamogli gentilmente di postare la parte di lavoro a cui è arrivato o ricordiamogli che senza un sorgente di partenza non possiamo aiutarlo...

HeDo, non è la prima volta, per favore cerchiamo di mostrare rispetto.
Il mio blog: piero.dev
03/04/09 18:23
XBarboX
Sto problema me l'hanno proposto alle olimpiadi informatiche!
Come l'hai trovato!
(Avrai mica contatti...):rotfl:
aaa
06/04/09 22:51
HeDo
Postato originariamente da pierotofy:

HeDo, non è la prima volta, per favore cerchiamo di mostrare rispetto.


eh si perchè chiedere agli altri di fare i propri compiti a casa senza mostrare (se si è fatto qualcosa) il proprio codice è molto utile.

semplicemente #care, se questo tizio non mostra un po di impegno nessuno lo aiuterà mai.

aaa