Late for Work (time)

Buonasera, non riesco a capire come raggiungere il 100/100. Ottengo 40/100 perché sbaglio solo la subtask 20. Consigli?

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

int main(){
	freopen("input.txt","r",stdin);
	freopen("output.txt","w",stdout);
	int H0,M0,H1,M1;
	int ora=0,min=0;
	cin>>H0>>M0>>H1>>M1;
	min+=M1-M0;
	if(min<0){
		min+=60;
		ora--;
	}
	if(H0<H1){
		ora+=H1-H0;
	}else if(H0!=0){
		ora+=H1+(24-H0);
	}
	if(ora<0){
		ora+=24;
	}
	cout<<ora<<" "<<min;	
	return 0;		
}

Il problema è in questa riga:

Se H0 = H1 puoi avere ora = 24, mentre dovrebbe essere 0.
Potresti aggiungere del codice per controllare questo caso, ma in realtà questa logica

è ridondante, dovrebbe fare esattamente la stessa cosa dell’if sotto.
Puoi sostituirla con

e il problema si risolve.

Grz mille!