Buonasera a tutti.
Stavo cercando di risolvere Bustine di carte, e nonostante il mio codice totalizzi 100/100, volevo diminuire un po’ il tempo di esecuzione.
Il codice utilizzato è il seguente:
#include <vector>
using namespace std;
int scarta(int M, vector<bool> L, vector<bool> D, vector<bool> N){
char sum=0;
int nCarteRimaste=0;
for(int i=0; i<M; i++){
sum=L[i]+D[i]+N[i];
nCarteRimaste+=(sum!=1);
}
return nCarteRimaste;
}
Inizialmente ho attribuito la causa del tempo impiegato (50ms) al fatto che i std::vector<bool>
venissero passati per valore, e quindi venissero copiati ogni volta. Ho provato a passarli per riferimento (con &) ma purtroppo mi va in errore di compilazione.
Qualcuno mi saprebbe aiutare?
EDIT: Ho anche provato a dichiarare scarta come inline int
anziché solamente int
, ma ottengo un errore di compilazione comunque.