Ciao ragazzi vi chiedo aiuto con questa soluzione di lotteria quadri. Ho usato il metodo dei due puntatori e una sliding window.
Metà dei testcase del subtask 2 sono output isn’t correct e un testcase ciascuno anche nei subtask 3,4 e 5.
Riuscite a farmi capire qual è il problema? Grazie
int quadri(int N, long long M, int V[]){
int l=1, r=0;
long long sum = 0;
for(int i=0; i<N; i++){
r=i;
sum+=V[r];
if(sum>M) break;
}
// r è l'indice destro della sw
while(l<r and r<=N-1){ // two pointers
sum -= V[l-1]; // rimuoviamo il primo elemento dalla somma
if(sum > M){
l++; // se la somma supera M anche senza il primo elemento l++
}
else{
l++; // altrimenti facciamo slidare la window
r++;
sum += V[r];
}
}
return (r-l+1>=0) ? (r-l+1) : 0;
}