Problema Esercizi territoriali Disk2

Buon sera, ho un problema con un esercizio delle territoriali, cioè questo

#include <iostream>

using namespace std;

struct Contests
{
	long long int I,F;
};
int main()
{
	long long int How=0,NumCont=0, night=-1,conta=0;
	cin>>NumCont;
	Contests Cont[NumCont];
	cin>>How;
	for(long long int x=0;x<NumCont;x++)
	{
		cin>>Cont[x].I;
		cin>>Cont[x].F;
	}
	
	for(long long int x=0;x<NumCont-1;x++)
	{
		conta=0;
		while(Cont[x].F!=Cont[x+1].I)
		{
			Cont[x].F=Cont[x].F-conta;
			conta++;
			Cont[x].F=Cont[x].F+conta;
			if(Cont[x].F>23)
				Cont[x].F=0;
		}
		if(conta>=How)
		{
			night=x;
			break;
		}
	}
	cout<<night<<endl;
}

Il programma soddisfa gli esempi e in più io gli ho dato in pasto altri tipi di input, dandomi il risultato giusto. Per esempio, questo:

Nota: Il numero dopo il trattino sono solo le ore contate da me (-ore)
15
20

0 23 -0
23 4 -0
4 23 -2
1 8 -1
9 10 -0
10 23 -12
11 20 -15
11 23 -11
10 21 -0
21 23 -7
6 22 -1
23 23 -11
10 23 -16
15 19 -20 
15 23

Risultato: 13

Però mi da 0/100, soddisfando solo gli esempi e subtask 2 tranne un caso.

prova questo test case

2 24
0 1
5 6