按照题意模拟即可
注意事项
1.若睡与醒的上下午不同,则把醒时+12
2.若分<0,则分+60,时-1
3.若时<0,则时+24
#include<bits/stdc++.h> using namespace std; int h1,h2,m1,m2,hh,mm,h,m; char a[3],b[3]; signed main(){ scanf("%d:%d %s\n",&h1,&m1,&a); scanf("%d:%d %s\n",&h2,&m2,&b); scanf("%dh%dmin",&hh,&mm); if(a[0]!=b[0]) h2+=12; h=h2-h1,m=m2-m1; if(m<0)m+=60,--h; if(h<0)h+=24; if(h==hh&&m==mm) puts("YES"); else puts("NO"),cout<<h<<"h"<<m<<"min"; return 0; }