hihoCoder太阁最新面经算法竞赛12 register

Ended

Participants:164

Verdict:Accepted
Score:100 / 100
Submitted:2016-10-25 14:56:56

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
int d[4], m[4];
void find(int idx, int v, int *res) {
    if (idx == 4) {
        if ((v / 100 < 24) && (v % 100) < 60) {
            int tmp = 60 * (v / 100) + v % 100;
            if (tmp > *res) { *res = tmp; }
        }
        return;
    }
    v *= 10;
    for (int i=0; i<4; ++i) {
        if (m[i] == 0) {
            m[i] = 1;
            find(idx+1, v+d[i], res);
            m[i] = 0;
        }
    }
}
int solve() {
    m[0] = m[1] = m[2] = m[3] = 0;
    int res = -1;
    for (int i=0; i<4; ++i) {
        m[i] = 1;
        find(1, d[i], &res);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX