#include #define DEBUGr #define NOP do{}while(0) #ifdef DEBUG #define TRACE(...) do{printf(__VA_ARGS__);fflush(stdout);}while(0) #define TRACECR do{printf("\n");fflush(stdout);}while(0) #else #define TRACE(...) NOP #define TRACECR NOP #endif int main( void ) { int hh,mm; double h,m; double vh,vm,vl; double kk = 0.; double min = 60.0 * 60.0; scanf("%d %d", &hh, &mm ); h = (double)hh; m = (double)mm; TRACE("%02d:%02d\n",hh,mm); vm = m; TRACE("長針の進み具合 vm %.4f\n",vm); if( h >= 12.0 ) h -= 12.0; vh = (h * 5 ) + ( (h/12) * 5. ); TRACE("短針の向きvh %.4f\n",vh); if( vh < vm ) { TRACE("先に長針がある\n"); kk = (60 - mm)*60; TRACE("0までの秒数 kk %.4f\n",kk); h++; if( h >= 12.0 ) h -= 12.0; TRACE("目標時刻 h%.4f\n",h); vl = (h * 60. ) /11.; TRACE("重なる向き(分) vl %.4f\n",vl); kk += (vl) * 60. ; } else if( vh > vm ) { TRACE("長針が後ろにある\n"); kk = (60 - mm)*60; TRACE("0までの秒数 kk %.4f\n",kk); if( h >= 12.0 ) h -= 12.0; TRACE("目標時刻 h%.4f\n",h); vl = (h * 60. ) /11.; TRACE("重なる向き(分) vl %.4f\n",vl); kk = (vl * 60.0) - (mm * 60.); } printf("%.0f\n", kk ); return 0; }