QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#113142 | #1949. Simple Cron Spec | ckiseki# | AC ✓ | 286ms | 8108kb | C++14 | 1.8kb | 2023-06-16 15:19:21 | 2023-06-16 15:19:23 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
vector<int> calc2(const string &s) {
size_t pos = s.find('-');
if (pos == string::npos) {
return {stoi(s)};
}
// cerr << "calc2 s = " << s << endl;
// cerr << "pos = " << pos << endl;
int r = stoi(s.substr(pos + 1));
int l = stoi(s.substr(0, pos));
vector<int> z;
for (int i = l; i <= r; i++)
z.push_back(i);
return z;
}
vector<int> calc(const string &s) {
// cout << "s = " << s << endl;
size_t last = 0;
vector<int> ret;
for (size_t i = 0; i <= s.size(); i++) {
if (i == s.size() || s[i] == ',') {
for (int t: calc2(s.substr(last, i - last))) {
ret.push_back(t);
}
last = i + 1;
}
}
return ret;
}
signed main() {
cin.tie(nullptr) -> sync_with_stdio(false);
int n;
cin >> n;
const int amt[3] = {24, 60, 60};
int ans = 0;
set<int> st;
for (int i = 0; i < n; i++) {
vector<int> last;
last.emplace_back(0);
for (int j = 0; j < 3; j++) {
string s;
cin >> s;
if (s == "*") {
vector<int> tmp;
for (int x: last) {
for (int t = 0; t < amt[j]; t++) {
tmp.emplace_back(x * amt[j] + t);
}
}
last = tmp;
} else {
vector<int> tmp;
for (int x: last) {
for (int t: calc(s)) {
tmp.emplace_back(x * amt[j] + t);
}
}
last = tmp;
}
}
for (int s: last)
st.insert(s);
ans += last.size();
}
cout << st.size() << ' ' << ans << '\n';
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3524kb
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: 1ms
memory: 3508kb
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: 1ms
memory: 3564kb
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: 286ms
memory: 8056kb
input:
100 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ...
output:
86400 8640000
result:
ok single line: '86400 8640000'
Test #5:
score: 0
Accepted
time: 26ms
memory: 8108kb
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: 1ms
memory: 3496kb
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: 3712kb
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: 3704kb
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: 3560kb
input:
1 23 59 59
output:
1 1
result:
ok single line: '1 1'
Test #10:
score: 0
Accepted
time: 0ms
memory: 3616kb
input:
3 * * 45 3 4-8,50 * * 49 *
output:
3210 3240
result:
ok single line: '3210 3240'