Problema con crittografia

Buonasera a tutti,

ho un problema con l’esercizio crittografia. Non mi accetta le password di n caratteri, seppur corrette. Tutti i casi impossibili li da come corretti ma quando deve correggere la password da errore. Il caso base è corretto ( perchè testato sul mio computer ), però lo segnala come corrette. Ho provato ad aggiungere spazio tra i caratteri, eliminare il carattere di fine stringa, ma non lo da comunque corretto. E’ un problema del correttore? Ho provato anche a far stampare al programma direttamente l’output corretto senza fare calcoli e da comunque output errato.

Assumendo che tu stia usando i file input.txt e output.txt, il correttore funziona.

Se non dovessi risolvere, incolla il sorgente del programma che stampa solo il primo caso base così vediamo cosa non va.

Prova questo input:

2 4
10ab
dovrebbe restituire ab

Sì, restituisce ab. Non so, provo a mandarvi l’algoritmo in privato così potete aiutarmi?

Sì, restituisce ab. Non so, provo a mandarvi l'algoritmo in privato così potete aiutarmi?

zera32

Se ti è possibile, pubblica il codice "base" che dovrebbe semplicemente stampare il risultato del primo caso prova.
Ci sta sfuggendo qualcosa di banale.
3 prove fatte... al primo caso dovrebbe uscire qb

#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;

int main()
{
    ifstream in;
    ofstream out;
    in.open("input.txt");
    out.open("output.txt");
    char test[3]="qb";
         out << test;
}

#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;

int main()
{
    ifstream in;
    ofstream out;
    in.open("input.txt");
    out.open("output.txt");
         out << 'q' << 'b';
}

#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;

int main()
{
    ifstream in;
    ofstream out;
    in.open("input.txt");
    out.open("output.txt");
         out << "q b";
}

In questo task il primo caso non è lo stesso presente nel testo (e in generale non dovete aspettarvi che ciò sia garantito, se non specificato). Il primo caso deve dare “bn”.

E', ma in questo caso era specificato:

Subtask 1 [ 5 punti ] : casi di esempio.

Eh in ogni caso grazie per le risposte, cercherò eventuali errore nell’'algoritmo :slight_smile:


PS. scusate i doppi post, ma sono abituato a fare modifica post nei forum xD
E', ma in questo caso era specificato

zera32

Ah, beh in tal caso c'è un errore negli input :S

Credo sia dovuto al fatto che il generatore (non essendo in python) non garantisce che lo stesso seed porti alla stessa "sequenza" di risultati di rand() su macchine/os diversi. Per ora lascio così (perché abbiamo in programma una modifica che renderà più semplice gestire i casi di esempio), ma in ogni caso hai ragione e i casi vanno corretti.

PS. scusate i doppi post, ma sono abituato a fare modifica post nei forum xD

zera32

In teoria dovreste essere abilitati a modificare i vostri post :S ci guardo...

Grazie mille per le risposte :slight_smile:

Ho trovato l’errore…
vet2[vet[l-1-i]-48] … mi ero dimenticato di convertire un char in un int, in una parte del programma
In teoria dovreste essere abilitati a modificare i vostri post :S ci guardo...

wil93

Ora come ora, non è possibile editare in alcun modo i messaggi inviati.
Saluti, Simone