Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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: 2763
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


Ingegnere Informatico
https://ldlagency.it
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!


Il computer non è una macchina intelligente che aiuta le persone stupide.
E' una macchina stupida che funziona solo nelle mani delle persone intelligenti.
Programmatore, non per lavoro, ma per passione!!
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6110
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.


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
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:


The old lie: Dulce et decorum est pro patria mori
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
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.



Ingegnere Informatico
https://ldlagency.it
PM Quote