やるだけ。

同じ変換を再度行うと元に戻るので、これを使えばほぼでテストケースが$6$つ増える。

問題

$[0,12)$の2つの整数$(a,b)$による時間の表現で以下のようなものを考える。

  • $(a,b)$は$a+1$時$5b$分を表す。

時刻の文字列表現HH:MMが与えられる。これの整数対$(a,b)$による表現を考え、$(b,a)$で表現される時刻を文字列表現HH:MMに変換せよ。

実装

#include <bits/stdc++.h>
using namespace std;
class EllysTimeMachine { public: string getTime(string time); };
string EllysTimeMachine::getTime(string time) {
    int h = (time[0] - '0') * 10 + (time[1] - '0');
    int m = (time[3] - '0') * 10 + (time[4] - '0');
    swap(h, m);
    h /= 5;
    m *= 5;
    if (h ==  0) h = 12;
    if (m == 60) m = 0;
    time[0] = (h / 10) + '0';
    time[1] = (h % 10) + '0';
    time[3] = (m / 10) + '0';
    time[4] = (m % 10) + '0';
    return time;
}