Aiutino con `usernames 2`

Guys cos ami sto perdendo?

#include <iostream>
#include <cstring>
#include <bitset>

using namespace std;

int main() {
    char username[20 + 1] = {0};
    scanf("%s", username);
    size_t username_length = strlen(username);

    int N;
    scanf("%d", &N);

    bitset<200000 + 1> used_num;

    for (int i = 0; i < N; i++) {
        char curr[20 + 1] = {0};
        scanf("%s", curr);

        if (strncmp(username, curr, username_length) != 0) {
            continue;
        }

        int num = atoi(curr + username_length);
        used_num.set(num);
    }

    for (int i = 0; i < 200000 + 1; i++) {
        if (!used_num.test(i)) {
            cout << username << (i ? to_string(i) : "") << endl;
            break;
        }
    }
    return 0;
}

Non credo che con il bitset vada fuori i limit di memoria eppure nell’ultimo subtask 4 test non passano.

Inoltre credo che non sia neanche giusta la soluzione in generale (ootengo degli output not correct).

Eppure a me sembra un ragionamento straight forward che dovrebbe rimanere nei constraints dati.

Prova con:
pippo
6
pippo
pippo04
pippo5
pippo1
pippo2
pippo3

Ah ma certo!
Grazie ho risolto. :smile: