QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#113163#1949. Simple Cron Specrgnerdplayer#AC ✓7ms3540kbC++202.2kb2023-06-16 16:11:002023-06-16 16:11:02

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-06-16 16:11:02]
  • 评测
  • 测评结果:AC
  • 用时:7ms
  • 内存:3540kb
  • [2023-06-16 16:11:00]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

using i64 = long long;

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);

#ifdef LOCAL
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif

    auto solve = [&]() {
        int n;
        cin >> n;

        vector a(n, vector(3, bitset<60>()));

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 3; j++) {
                string s;
                cin >> s;
                if (s == "*") {
                    a[i][j].set();
                } else {
                    for (int p = 0, q = 0; p < int(s.size()); p = q) {
                        auto parse = [&]() {
                            int res = 0;
                            while (q < int(s.size()) && isdigit(s[q])) {
                                res = res * 10 + s[q] - '0';
                                q++;
                            }
                            return res;
                        };
                        int n1 = parse();
                        if (q < int(s.size()) && s[q] == '-') {
                            q++;
                            int n2 = parse();
                            for (int t = n1; t <= n2; t++) {
                                a[i][j].set(t);
                            }
                            q++;
                        } else {
                            a[i][j].set(n1);
                            q++;
                        }
                    }
                }
            }
        }

        int ans1 = 0, ans2 = 0;

        for (int h = 0; h < 24; h++) {
            for (int m = 0; m < 60; m++) {
                for (int s = 0; s < 60; s++) {
                    bool has = false;
                    for (int i = 0; i < n; i++) {
                        if (a[i][0][h] && a[i][1][m] && a[i][2][s]) {
                            has = true;
                            ans2++;
                        }
                    }
                    ans1 += has;
                }
            }
        }

        cout << ans1 << ' ' << ans2 << '\n';
    };
    
    solve();
    
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3440kb

input:

3
* 5 15,30,45
6,12,18 30 0
8-17 0 30

output:

85 85

result:

ok single line: '85 85'

Test #2:

score: 0
Accepted
time: 0ms
memory: 3464kb

input:

22
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37
19 1 37

output:

1 22

result:

ok single line: '1 22'

Test #3:

score: 0
Accepted
time: 2ms
memory: 3468kb

input:

24
2 55 56
0 13 2
4 8 35
16 43 48
5 28 58
8 40 7
3 59 6
7 32 20
6 37 16
15 39 23
20 42 15
22 26 10
17 57 52
21 0 44
11 33 14
18 17 49
19 25 34
9 45 9
14 24 31
10 4 27
12 29 22
1 21 50
23 54 18
13 11 12

output:

24 24

result:

ok single line: '24 24'

Test #4:

score: 0
Accepted
time: 7ms
memory: 3448kb

input:

100
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* ...

output:

86400 8640000

result:

ok single line: '86400 8640000'

Test #5:

score: 0
Accepted
time: 2ms
memory: 3444kb

input:

8
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 0,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,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,2...

output:

86400 691200

result:

ok single line: '86400 691200'

Test #6:

score: 0
Accepted
time: 0ms
memory: 3516kb

input:

9
8 5 0
* 30 0
* 0,15,30,45 30
9-17 0 0
6,8-17,19,22 30 30
9-17 30 0
0 0 10-19
18-23 0 30,57-59
0-5 1-5 1

output:

188 216

result:

ok single line: '188 216'

Test #7:

score: 0
Accepted
time: 1ms
memory: 3536kb

input:

5
5,7-11,21 15,45 10
10,14,16 0-2,15,30-33 29,59
* 29,59 *
18 0 9,14-21,29,45-47,58
0-1,13,22 10,34,46,48 15,24,33,47,54-58

output:

3100 3100

result:

ok single line: '3100 3100'

Test #8:

score: 0
Accepted
time: 1ms
memory: 3540kb

input:

5
7,14-19,21 11-14,33-38,43 56
* 54-56 2
3,4,8 8 13-16,23,30-32
6 * 15-17
2-7 5,7,23-27 *

output:

2863 2884

result:

ok single line: '2863 2884'

Test #9:

score: 0
Accepted
time: 1ms
memory: 3436kb

input:

1
23 59 59

output:

1 1

result:

ok single line: '1 1'

Test #10:

score: 0
Accepted
time: 1ms
memory: 3436kb

input:

3
* * 45
3 4-8,50 *
* 49 *

output:

3210 3240

result:

ok single line: '3210 3240'