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++ - il problema di poldo
Forum - C/C++ - il problema di poldo

Avatar
pinnacchio88 (Normal User)
Newbie


Messaggi: 4
Iscritto: 17/01/2007

Segnala al moderatore
Postato alle 18:34
Mercoledì, 17/01/2007
salve a tutti sono nuovissimo di qua...vorrei chiedervi una mano..siccome dm ho le olimpiadi d'informatica mi sto allenando sulle vecchie edizioni questo è quanto ho scritto io riguardo al al probema di poldo(www.olimpiadi-informatica.it |edizione 2004 prove regionali)ma non funge!

#include <iostream.h>
#include <fstream.h>

int main()
{
    ifstream fin("input.txt");//file di input
    ofstream fout("output.txt",ios ::app);//file di output
    int m=0,pan1[100],pan2[100],poldo1=1,poldo2=0;
    fin>>m;//carica nella variabile il num di elementi
    for (int s=0;s<m;s++)
    {
        fin>>pan2[s];//carica nelle variabile pan2 e pan1 tutti gli elementi
        pan1[s]=pan2[s];

}
    for (int s=1;s<m;s++)//con le seguenti istruzioni vado a fare le varie
    {                    //combinazioni
        
    for(int i=0;i<m;i++)
    {
            if(pan1[s]>pan2)
            while(pan1[s]>pan2)
            {
                         poldo1++;
                         pan1[s]=pan2;
            }
            else
            {
                         pan2=pan2[i+1];
                         }                  
    
    }
    }
      for(int i=0;i<m;i++)
      for(int s=poldo1;s<m;s++)
      while(pan1[s]>pan2)
            {
                         poldo1++;
                         pan1[s]=pan2;
                         fout<<pan1[s];
            }
    
return 0;
}

sono un po incasinato aiutatemi!!!

PM Quote
Avatar
nikipe_silver (Founder Member)
Expert


Messaggi: 339
Iscritto: 20/09/2005

Segnala al moderatore
Postato alle 20:20
Mercoledì, 17/01/2007
scrivi il testo del problema...

PM Quote
Avatar
pinnacchio88 (Normal User)
Newbie


Messaggi: 4
Iscritto: 17/01/2007

Segnala al moderatore
Postato alle 20:46
Mercoledì, 17/01/2007
questo è il testo del problema!!

Il problema
Il dottore ordina a Poldo di seguire una dieta. Ad ogni pasto non può mai mangiare un panino che abbia un peso maggiore o uguale a quello appena mangiato. Quando Poldo passeggia per la via del suo paese da ogni ristorante esce un cameriere proponendo il menù del giorno. Ciascun menù è composto da una serie di panini, che verranno serviti in un ordine ben definito, e dal peso di ciascun panino. Poldo, per non violare la regola della sua dieta, una volta scelto un menù, può decidere di mangiare o rifiutare un panino; se lo rifiuta il cameriere gli servirà il successivo e quello rifiutato non gli sarà più servito.
Si deve scrivere un programma che permetta a Poldo, leggendo un menù, di capire qual è il numero massimo di panini che può mangiare per quel menù senza violare la regola della sua dieta.  
Riassumendo, Poldo può mangiare un panino se e solo se soddisfa una delle due condizioni:
1)      il panino è il primo che mangia in un determinato pasto;
2)      il panino non ha un peso maggiore o uguale all’ultimo panino che ha mangiato in un determinato pasto.
Dati in input
La prima linea del file input.txt contiene il numero m di panini proposti nel menu. Le successive m linee contengono un numero intero non negativo che rappresenta il peso del panino che verrà servito. I panini verranno serviti nell’ordine in cui compaiono  nell’input.
Dati in output
Il file output.txt contiene il massimo numero di panini che Poldo può mangiare rispettando la dieta.
Assunzioni
I pesi di panini sono espressi in grammi, un panino pesa al massimo 10 Kg.
Un menù contiene al massimo 100 panini.
Esempi di input e output
Esempio 1
File input.txt
8
389
207
155
300
299
170
158
65
File output.txt
6
Esempio 2
File input.txt
3
22
23
27
File output.txt
1
Esempio 3
File input.txt
22
15
14
15
389
201
405
204
130
12
50
13
26
190
305
25
409
3011
43
909
987
1002
900
File output.txt
6

PM Quote