SRM515 Div1 Easy(250), Div2 Medium(500) RotatedClock

RotatedClock

時間が12通り、分が60通り、時計の回転が12通り。全て試してみる。時針の角度が整数ではなくなってしまうので、分は偶数。

#include <string>
#include <cstdio>
using namespace std;

class RotatedClock{public:
string getEarliest( int hourHand, int minuteHand )
{
    for ( int h=0; h<12; h++ )
    for ( int m=0; m<60; m+=2 )
    for ( int d=0; d<360; d+=30 )
    {
        if ( ((h*60+m)*360/720+d)%360 == hourHand  &&
             (m*360/60+d)%360 == minuteHand )
        {
            char tmp[16];
            sprintf( tmp, "%02d:%02d", h, m );
            return tmp;
        }
    }

    return "";
}};