Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Esercizio C++
Forum - C/C++ - Esercizio C++

Avatar
kopiro91 (Member)
Newbie


Messaggi: 20
Iscritto: 23/07/2008

Segnala al moderatore
Postato alle 14:07
Giovedì, 02/04/2009
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.

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:35
Giovedì, 02/04/2009
Testo quotato

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

PM Quote
Avatar
Il_maca (Normal User)
Rookie


Messaggi: 49
Iscritto: 19/12/2008

Segnala al moderatore
Postato alle 15:57
Giovedì, 02/04/2009
Testo quotato

Postato originariamente da HeDo:

Testo quotato

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!

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 18:45
Giovedì, 02/04/2009
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: https://piero.dev
PM Quote
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Segnala al moderatore
Postato alle 20:23
Venerdì, 03/04/2009
Sto problema me l'hanno proposto alle olimpiadi informatiche!
Come l'hai trovato!
(Avrai mica contatti...):rotfl:

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 0:51
Martedì, 07/04/2009
Testo quotato

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.


PM Quote