SRM 515 Div1 Easy RotatedClock
問題
時計の短針と長針を、文字盤のある文字から時計回りに見た角度が与えられる。
このとき、現在の時刻として有り得る値のうち、最も早いものを答えよ。
どの時刻でもありえないときは""を返せ。
制約条件
hourHand, minuteHand は0以上360未満の整数。
方針
角度の基準となる目盛りを12通り試すだけ。
ソースコード
class RotatedClock { public: string getEarliest(int hourHand, int minuteHand) { int a=100000; rep(i,12){ int h=(hourHand+30*i)%360, m=(minuteHand+30*i)%360; if(h*2%60 != m/6.0)continue; a=min(a,h/30*60+m/6); } if(a==100000)return ""; char ans[10]; sprintf(ans,"%02d:%02d",a/60,a%60); return ans; } };