Buongiorno a tutti. Avrei un problema con un algoritmo che da poco ho implementato ovvero la LCS (massima sottosequenza comune). In pratica l'algoritmo è implementato correttamente e funziona alla grande ma ho un problema con la stampa, cioè in pratica mi stampa prima le parole con meno occorrenze e poi quelle con più occorrenze. So che può sembrare una cosa banale da risolvere ma mi sta mandando in tilt e vorrei risolvere senza cambiare troppo il codice che ho già implementato.

di seguito vi posto il codice:
codice:
void HashMap::LCS (string vocabolo)
{
    for (iteratore=dMap.begin(); iteratore != dMap.end() ; iteratore++)
    {
        string secondotermine = iteratore -> second ;
        int lungh1=vocabolo.size(), lungh2=secondotermine.size();
        int i=0,j=0;
        int array[100][100];
        for (int i=0; i<=lungh1; i++)
            array[i][0]=0;

        for (int j=0; j<=lungh2; j++)
            array[0][j]=0;

        for (int i=1; i<=lungh1; i++)
        {
            for (int j=1; j<=lungh2; j++)
            {
                if (vocabolo[i]==secondotermine[j])
                    array[i][j]=array[i-1][j-1]+1;
                else if (array[i-1][j]>=array[i][j-1])
                    array[i][j]=array[i-1][j];
                else
                    array[i][j]=array[i][j-1];
            }
        }
        i=lungh1, j=lungh2;
        if (array[i][j] >= 3)
            cout << "Intendevi forse " << secondotermine << "?" << endl;
    }
}
In pratica io ho un dizionario hash di parole salvate in una multimap che andrò a scorrere tutta e confronto tutte le parole nella multimap (il ciclo esterno) con quella che passo alla funzione. Lui trova le occorrenze e alla fine se sono più/uguali a 3 stampa il "suggerimento". Il programma ripeto funziona benissimo, trova le occorrenze perfettamente.Ho provato a cambiare la condizione finale ma niente, ho fatto vari tentativi ma nulla. Sapreste aiutarmi? ve ne sarei grato.
Grazie mille per l'aiuto