Ciao a tutti, ho bisogno di aiuto per risolvere il problema Festa Estiva.
Avevo idea di usare un dizionario: come chiavi l’inizio delle vacanze e come valore la fine. Poi in un for iterato Y volte, vedere quando un amico entra nelle vacanze e diminiuire di 1 i liberi, e quando c’e il giorno di rientro aumento di 1. Vari testcase vanno oltre il limite di tempo o l’output on è corretto. Penso che il problema sia sul fatto che io stia usando map, ma non so quale altra struttura dati utilizzare.
Ecco il mio codice:
#include <vector>
#include <map>
using namespace std;
int organizza(int N, int X, int Y, vector<int> A, vector<int> B){
int liberi=N;
map<int, int> vacanze;//inizio, fine
for(int i = 0; i<N; i++){
vacanze[A[i]] = B[i];
}
for(int i=0;i<=Y;i++){
for(auto [inizio, fine] : vacanze){
if (inizio==i)
liberi-=1;
else if (fine==i)
liberi+=1;
}
}
return liberi;
}
Grazie mille in anticipo!