Ciao a tutti
sto cercando di risolvere il problema delle IOI Science against spam ma mi da qualche output non corretto.
Avete qualche idea del perchè?
Questo è il codice: https://pastebin.com/UxJ8Ejei
Ciao a tutti
sto cercando di risolvere il problema delle IOI Science against spam ma mi da qualche output non corretto.
Avete qualche idea del perchè?
Questo è il codice: https://pastebin.com/UxJ8Ejei
Credo che il problema sia questo:
if(bad && good)
break;
Quando tu esci dal ciclo interno potresti avere ancora delle parole da leggere e in questo modo vai a “sfasare” le mail successive!
100/100 grazie mille
sono proprio stupido
Come posso “non prendere in input” alcune delle parole che non mi servono, Perche come aveva scritto nel codice anche rossimelthomas nel momento in cui mi accorgo di aver gia trovato una parole "buona " ed una “cattiva” è totalmente inutile continuare a leggere la mail, ma nel caso in cui esco dal ciclo come anche fatto notare quelle parole rimaste sfaseranno le mail successive. Allora mi stavo chiedendo se esiste una funzione per evitare di prendere in input un DETERMINATO numero di parole in quanto conosco esattamente quante parole sono rimaste, credo che questo passaggio potrebbe velocizzare di molto il codice ma non so se è possibile fare una cosa del genere.
puoi leggerle senza eseguire la ricerca binaria o l’algoritmo che hai implementato, non dovrebbe dare problemi
In ogni caso forse il metodo seek può aiutarti
Non so come si usa perchè non l’ho provato ma mi sembra che si possano saltare delle righe dal file di testo con questo metodo
fseek non funziona su stdin, quindi per usarlo l’input deve essere necessariamente da file. In ogni caso la funzione chiede come parametro un offset a cui spostarsi, quindi senza sapere la lunghezza delle stringhe non è possibile saltarle in questo modo.
Si beh alla fine non può sapere quanto saltare
Se si trattasse solo di numero di stringhe ci si può arrivare facilmente, se si tratta di numero di caratteri allora no
Si intende numero di caratteri