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.