Aiutino con K-free

Sto risolvendo il problema K-free e il mio codice da un solo errore in un caso dell’ ultimo subtask, qualcuno ha idea di quale possa essere il caso limite( o almeno penso si tratti di questo)in cui il mio codice non funziona, vi lascio qui il codice grazie in anticipo:

#include <bits/stdc++.h>
#pragma GCC optmizie("O3")
using namespace std;
typedef long long int ll;
vector<bool>presente;
int trova(int N,int K,int insieme[]){
   sort(insieme,insieme+N);
   presente.resize((insieme[N-1]*K)+1);
   ll sol=0;
   for(int i=0;i<N;i++){
   	if(presente[insieme[i]]==false){
   		sol++;
   		presente[insieme[i]*K]=true;
   	}
   }
   return sol;
}

Prova a pensare quando K=1 cosa succede :new_moon_with_face:

Ah ok, però alla fine con K=1 gli unici numeri che non si possono prendere sono i doppioni, no?
Però io facendo qualche esempio cosi in locale non trovo errori

Eh no, se nell’insieme hai a non puoi avere K\cdot a=1\cdot a=a.

Ah giusto che stupido grazie mille

1 Mi Piace