SRM515 Div1Easy RotatedClock
問題URL:RotatedClock
プロコンほとんど関係ないんですけど、河合塾のひらめく数学チャレンジ2018の第2弾-3問目に今回の類題があるので、時計問題マニアの方にはおすすめです。ちなみに第1弾-3問目は完全にAnts
考察
0時に対して短針がであるとき、長針はであるのが適切な位置関係。0時にあたる基準を0~11の範囲で全探索して、いい感じになればok。
実装
基準を置く代わりに短針と長針をずつずらす。これを12回やる。の は基準によらず一定。なので先に求めたけどあんまり意味ない。最後、解答を文字列に直すのが一番だるい。printf("%02d:%02d")
使いたい。
#include <bits/stdc++.h> using namespace std; class RotatedClock { public: string getEarliest( int hourHand, int minuteHand ){ int h=hourHand%30*12; int ansh=20,ansm=20; for(int i=0;i<12;i++){ hourHand-=30; if(hourHand<0) hourHand+=360; minuteHand-=30; if(minuteHand<0) minuteHand+=360; if(minuteHand==h){ if(hourHand/30<ansh){ ansh=hourHand/30; ansm=minuteHand/6; } } } string ret; if(ansh!=20){ if(ansh<10) ret+="0"; ret+=to_string(ansh); ret+=":"; if(ansm<10) ret+="0"; ret+=to_string(ansm); } return ret; } };