3
string largestTimeFromDigits(vector<int> &arr) {4
sort(arr.rbegin(), arr.rend());11
for (int i = 0; i < 2; i++) ret.push_back(ans[i] + '0');15
for (int i = 2; i < 4; i++) ret.push_back(ans[i] + '0');21
vector<int> min = {600, 60, 10, 1};24
bool dfs(const vector<int> &arr, int totalhour, int totalmin) {25
if (totalhour >= 24 * 60) return false;26
if (totalmin >= 60) return false;27
if (ans.size() == 4) return true;29
for (int i = 0; i < 4; i++) {30
if (used[i]) continue;35
totalhour += arr[i] * min[pos];37
totalmin += arr[i] * min[pos];39
ans.push_back(arr[i]);41
if (dfs(arr, totalhour, totalmin)) return true;44
totalhour -= arr[i] * min[pos];46
totalmin -= arr[i] * min[pos];