# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
854147 |
2023-09-26T08:44:36 Z |
Desh03 |
Pinball (JOI14_pinball) |
C++17 |
|
126 ms |
17356 KB |
#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
template<typename T>
struct SegmentTree {
vector<T> st;
int n;
SegmentTree(int n_) : n(n_) {
st.resize(n << 1, INF);
}
void update(int i, T x) {
i += n;
st[i] = min(st[i], x);
while (i >>= 1) st[i] = min(st[i << 1], st[i << 1 | 1]);
}
T query(int l, int r) {
T mn = INF;
for (l += n, r += n + 1; l < r; l >>= 1, r >>= 1) {
if (l & 1) mn = min(mn, st[l++]);
if (r & 1) mn = min(mn, st[--r]);
}
return mn;
}
};
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int m, n;
cin >> m >> n;
vector<tuple<int, int, int, int>> q(m);
vector<int> cmp;
for (auto &[a, b, c, d] : q) {
cin >> a >> b >> c >> d;
--a, --b, --c;
cmp.push_back(a);
cmp.push_back(b);
cmp.push_back(c);
}
sort(cmp.begin(), cmp.end());
if (cmp[0] || cmp.back() != n - 1) {
cout << "-1\n";
return 0;
}
cmp.erase(unique(cmp.begin(), cmp.end()), cmp.end());
auto C = [&](int &x) -> void {
x = lower_bound(cmp.begin(), cmp.end(), x) - cmp.begin();
};
n = cmp.size();
SegmentTree<long long> l(n), r(n);
long long ans = INF;
for (auto &[a, b, c, d] : q) {
C(a), C(b), C(c);
if (!a && b == n - 1) {
ans = min(ans, (long long) d);
} else if (!a) {
long long y = r.query(a, b);
if (y != INF) {
ans = min(ans, d + y);
r.update(c, d + y);
}
l.update(c, d);
} else if (b == n - 1) {
long long x = l.query(a, b);
if (x != INF) {
ans = min(ans, x + d);
l.update(c, x + d);
}
r.update(c, d);
} else {
long long x = l.query(a, b), y = r.query(a, b);
ans = min(ans, x + y + d);
if (x != INF) {
l.update(c, x + d);
}
if (y != INF) {
r.update(c, y + d);
}
}
}
cout << (ans == INF ? -1 : ans);
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
1 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
460 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
1 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
460 KB |
Output is correct |
9 |
Correct |
1 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
0 ms |
348 KB |
Output is correct |
13 |
Correct |
0 ms |
348 KB |
Output is correct |
14 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
1 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
460 KB |
Output is correct |
9 |
Correct |
1 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
0 ms |
348 KB |
Output is correct |
13 |
Correct |
0 ms |
348 KB |
Output is correct |
14 |
Correct |
1 ms |
348 KB |
Output is correct |
15 |
Correct |
1 ms |
348 KB |
Output is correct |
16 |
Correct |
0 ms |
348 KB |
Output is correct |
17 |
Correct |
1 ms |
540 KB |
Output is correct |
18 |
Correct |
1 ms |
464 KB |
Output is correct |
19 |
Correct |
1 ms |
344 KB |
Output is correct |
20 |
Correct |
1 ms |
348 KB |
Output is correct |
21 |
Correct |
1 ms |
348 KB |
Output is correct |
22 |
Correct |
1 ms |
604 KB |
Output is correct |
23 |
Correct |
1 ms |
604 KB |
Output is correct |
24 |
Correct |
1 ms |
604 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
1 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
460 KB |
Output is correct |
9 |
Correct |
1 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
0 ms |
348 KB |
Output is correct |
13 |
Correct |
0 ms |
348 KB |
Output is correct |
14 |
Correct |
1 ms |
348 KB |
Output is correct |
15 |
Correct |
1 ms |
348 KB |
Output is correct |
16 |
Correct |
0 ms |
348 KB |
Output is correct |
17 |
Correct |
1 ms |
540 KB |
Output is correct |
18 |
Correct |
1 ms |
464 KB |
Output is correct |
19 |
Correct |
1 ms |
344 KB |
Output is correct |
20 |
Correct |
1 ms |
348 KB |
Output is correct |
21 |
Correct |
1 ms |
348 KB |
Output is correct |
22 |
Correct |
1 ms |
604 KB |
Output is correct |
23 |
Correct |
1 ms |
604 KB |
Output is correct |
24 |
Correct |
1 ms |
604 KB |
Output is correct |
25 |
Correct |
10 ms |
1628 KB |
Output is correct |
26 |
Correct |
28 ms |
3800 KB |
Output is correct |
27 |
Correct |
80 ms |
8140 KB |
Output is correct |
28 |
Correct |
81 ms |
7628 KB |
Output is correct |
29 |
Correct |
57 ms |
6612 KB |
Output is correct |
30 |
Correct |
105 ms |
7956 KB |
Output is correct |
31 |
Correct |
120 ms |
12328 KB |
Output is correct |
32 |
Correct |
118 ms |
10952 KB |
Output is correct |
33 |
Correct |
15 ms |
3548 KB |
Output is correct |
34 |
Correct |
59 ms |
8716 KB |
Output is correct |
35 |
Correct |
74 ms |
17356 KB |
Output is correct |
36 |
Correct |
126 ms |
16328 KB |
Output is correct |
37 |
Correct |
115 ms |
16584 KB |
Output is correct |
38 |
Correct |
102 ms |
16584 KB |
Output is correct |