Halloween Candy

Sto provendo a risolvere Halloween Candy con i moduli, per risolvere il problema del tempo. Questo e’ il codice che mi sembra dare risultati giusti ma sul sito sbagliati. Qualcuno mi potrebbe dare una mano? Grazie

#include <stdio.h>
#include <assert.h>

// constraints
#define MAXN 100000

// input data
int N;
int C[MAXN];
long long int M, i;

int main() {
    assert(2 == scanf("%d %lld", &N, &M));
    for(i=0; i<N; i++)
        assert(1 == scanf("%d", &C[i]));

	i = 0;
	M = M % N;
	if (M==0) i = 1;
	
    while(M - C[i] > 0) {
   		M -= C[i];
    	i++;
    	if (i == N) i = 0;
	}
    printf("%lld\n", i); // print the result
    return 0;
}

Quello che ho fatto io è stato evitare di simulare la situazione, determinando quanti giri servissero prima di quello finale e all’inizio di quest’ultimo quante fossero le caramelle rimaste.
Dopodiché sapendo che al massimo potevo fare solo un giro andavo a simulare per vedere a chi spettasse l’ultima caramella.