Lotteria di quadri (quadri) 15/100

Ciao a tutti stavo cercando di risolvere quadri ma non riesco ad andare oltre 15 punti, questo è il codice:

#include <bits/stdc++.h>
using namespace std;


int quadri(int N, long long M, int V[]){
	long long sum = 0, sol = N;
	int i;
	for(i = 0; i < N; ++i) sum += V[i];
	for(i = 0; i < N; ++i){
		if(sum > M){
			sum -= V[i];
			--sol;
		}
	}
	return sol;
}

Qualcuno riesce ad aiutarmi? Grazie.

Ciao, potresti spiegare l’approccio del codice? A me risulta che vengono forniti output sbagliati dopo qualche testcase. Probabilmente la soluzione non è ottimale, io ti suggerirei di risolvere questo problema usando una sliding window, provando ogni quadro come ipotetica partenza.

Spero di essere riuscito a descrivere l’approccio bene, se ti serve qualche chiarimento chiedi pure!

1 Mi Piace

Secondo me anche la soluzione con ricerca binaria è molto istruttiva.

Grazie mille per l’aiuto sono riuscito! Avevo inteso male il testo…