#include #include using namespace std; #define N 21 int n,sleep,awake; struct Time { int hour; int minite; int sec; void trans() { sec=hour*60+minite; } void retrans() { sec+=24*60; } void minusonesecond() { if(minite==0) hour--,minite=59; else minite--; if(hour<0) hour+=24; } void addonesecond() { if(minite==59) hour++,minite=0; else minite++; if(hour>23) hour-=24; } bool operator < (const Time a)const { if(hour==a.hour) { return minitetbtb) return 1; return -1; } Time sle[N][2]; char evn[20]; void solve(bool flag) { int i,j,begin,end,temp=0,nowlast=0,segn=0; Time temp1,temp2; for(i=2;i<=n;i++) { end=affire[i].tb.sec-1; begin=affire[i-1].te.sec+1; if(end=sleep) { ++segn; temp1=affire[i-1].te; temp1.addonesecond(); sle[segn][0]=temp1; temp1=affire[i].tb; temp1.minusonesecond(); sle[segn][1]=temp1; nowlast=0; } else if(end-begin+1awake) { printf("No\n"); return ; } } } end=affire[1].tb.sec-1; begin=affire[n].te.sec+1; if(end=sleep) { ++segn; temp2=affire[n].te; temp2.addonesecond(); sle[segn][0]=temp2; temp1=affire[1].tb; temp1.minusonesecond(); sle[segn][1]=temp1; nowlast=0; } else if(end-begin+1awake) { printf("No\n"); return ; } } if(n==0) { segn=1; printf("Yes\n%d\n",segn); printf("00:00-23:59\n"); return; } else { if(segn!=0) { printf("Yes\n%d\n",segn); for(i=1;i<=segn;i++) { printf("%02d:%02d-%02d:%02d\n",sle[i][0].hour,sle[i][0].minite,sle[i][1].hour,sle[i][1].minite); } } else printf("No\n"); } } int main() { while(scanf("%d%d",&sleep,&awake)!=EOF) { sleep*=60,awake*=60; scanf("%d",&n); int i,j; bool flag=false; bool ss=false; for(i=1;i<=n;i++) { Time T1,T2; scanf("%d:%d-%d:%d",&T1.hour,&T1.minite,&T2.hour,&T2.minite); T1.trans(),T2.trans(); if(T2.sec-T1.sec+1>awake) { ss=true; } if(T2