Buonasera a tutti,
sto cercando di risolvere il problema in questione:
per farlo ho preso il template disponibile tra gli allegati e ho implementato la funzione da completare nel seguente modo:
#include <algorithm>
int detect(const vector<string>& bad, const vector<string>& good, const vector<string>& email, size_t N) {
// insert your code here
bool legitimate = false, spam = false;
for(register size_t i{}; i<N; ++i)
{
if(!spam && binary_search(bad.cbegin(), bad.cend(), email[i]))
{
if(legitimate)
return 0;
spam = true;
}
else if(!legitimate && binary_search(good.cbegin(), good.cend(), email[i]))
{
if(spam)
return 0;
legitimate = true;
}
}
if(spam)
return -1;
if(legitimate)
return +1;
return 0;
}
N.B.: nel main ho inserito, affinché binary_search(…) funzioni, due chiamate a std::sort per ordinare i vector good e bad.
Ciò che non capisco è come mai alcune volte la funzione non produca l’output corretto e come mai levando i controlli nei due if !legitimate
e !spam
il test 003 del subtask 3 fallisca.
Qualcuno per caso riesce a individuare l’errore e a spiegarmelo per favore?