この問題は簡単な計算を問います。

時間に関する問題では、大抵の場合は分数を基準に直すことで容易に計算することができます。

寝る時刻は HHMM 分なので、これを分数基準として直すと (60H+M)(60H+M) 分になります。
さらにお風呂に入る時刻は、寝る時刻の DD 分前なので (60H+MD)(60H+M-D) 分となります。この値を SS とします。
同様に現在の時刻を分数基準として直すと (60h+m)(60h+m) 分になります。この値を TT とします。

これらの差分を取った STS-T の値が答えとなります。
S,STS, S-T それぞれにおいて、分数の差分を取った結果が負になることがありますが、この場合は日付を跨ぐことを意味することになります。
そのため結果の値に 1440(=24×60)1440(=24\times 60) 分を加算する必要があることに注意してください。

解答例(C++):