La camera dei cestini - 40%

Buongiorno a tutti.
Per questo problema non riesco ad andare oltre il 40%. I test case falliscono per via del tempo.
Ho considerato l’insieme dei cestini come un vector (ho provato anche con un array) e ogni cestino come uno stack o una lista, un deque o anche un vector…ma non va oltre il 40%.
Qualche consiglio?

Usa un vector di vector

Grazie ma ho provato anche questo…
Addirittura con un vector di vector ottengo il 10 %.
Ecco qui il codice

void inizia(int N, int M){
	vector<int> s;
	for(int i=0;i<N;i++)
	{
		s.insert(s.begin(),i);
	}	
	cestini.push_back(s);
	for(int i=1;i<M;i++)
	{
	    vector<int> s;
	    cestini.push_back(s);
	}

}
void sposta(int a, int b){
	cestini[b].insert(cestini[b].begin(),cestini[a].at(0));
	cestini[a].erase(cestini[a].begin());
}


int controlla(int a, int i){
	
	if (cestini[a].size()<i+1) return -1;

	int val=cestini[a].at(cestini[a].size()-i-1);
	return val;
}

Non credo che il problema possa essere nel controlla visto che l’accesso è pseudo-diretto.
Dove perdo tempo?
Grazie ancora

Sempre meglio i push_back() rispetto alle insert() quindi prova a sostituirle nel codice.
O(1) vs O(N)

Ottimo grazie.
Adesso mi da 100%.