ナゾ042

レイトン教授と魔神の笛」のナゾ042が徹夜明けの頭には辛かったのでプログラムで解いてみました。
でも、なんか答えが違う、、、。
以下、激しくネタバレ。

#include <cstdio>

float short_angle(int hh, int mm)
{
    return 360.0f * (float)((hh%12)*60 + mm) / (60.0f*12.0f);
}

float long_angle(int mm)
{
    return 360.0f * (float)mm / 60.0f;
}

float clock_angle(int hh, int mm)
{
    float sa = short_angle(hh, mm);
    float la = long_angle(mm);
    float a = la - sa;
    if (a < 0.0f)
        a += 360.0f;
    return a;
}

bool is_continued3(int hh, int mm)
{
    int d[] = { hh/10, hh%10, mm/10, mm%10 };
    return
        ((d[0] == d[1]) && (d[1] == d[2]) && (d[2] != d[3])) ||
        ((d[0] != d[1]) && (d[1] == d[2]) && (d[2] == d[3])) ;
}

int main()
{
    int max_hh = 0;
    int max_mm = 0;
    float max_angle = 0.0f;

    for (int hh = 1; hh < 24; ++hh)
    {
        for (int mm = 0; mm < 60; ++mm)
        {
            if (is_continued3(hh, mm))
            {
                float a = clock_angle(hh, mm);
                if (a > max_angle)
                {
                    max_hh = hh;
                    max_mm = mm;
                    max_angle = a;
                }

                std::printf("%2d:%02d\t%g\n", hh, mm, a);
            }
        }
    }

    std::printf("max: %2d:%02d\n", max_hh, max_mm);
}

枝狩りのない、力任せのコードです。
実行結果は「ナゾ解答の掲載はご遠慮願います」とのことなので載せません。
また、上記プログラムの結果を入力しても正解にはなりません。
ヒントで聞ける数に合わせると、時間は0埋めせず、分は0埋めする模様。
確かに問題文もそうなっています。なので0時は無視。
ちなみに、寝ぼけた頭で考えた答えは「11:1」。それ長針と短針が逆、、、。