#line 1 "Palembang_Bridges.cpp"
#include <bits/stdc++.h>
#ifdef local
#define dbg(__VA_ARGS__) \
std::cerr << "[DBG|" << __LINE__ << "]: " << __VA_ARGS__ << std::endl;
#define cerr(__VA_ARGS__) std::cerr << __VA_ARGS__;
#else
#define dbg(...)
#define cerr(...)
#endif
void vec_out(const std::vector<int> &cc) {
dbg("vector: ");
for (auto x : cc) {
cerr(x << " ");
}
cerr("\n");
}
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int K, N;
std::cin >> K >> N;
std::vector<std::tuple<char, std::int64_t, char, std::int64_t>> PSQT(N);
for (auto &[P, S, Q, T] : PSQT) {
std::cin >> P >> S >> Q >> T;
}
std::int64_t ans = 0;
std::vector<std::pair<std::int64_t, std::int64_t>> HW;
for (auto [P, S, Q, T] : PSQT) {
if (P == Q) {
ans += std::abs(T - S);
continue;
}
HW.emplace_back(S, T);
}
auto calc = [&](int S, int T, int x) {
return std::abs(S - x) + std::abs(T - x) + 1;
};
if (K == 1) {
auto f = [&](int x) {
std::int64_t ans = 0;
for (auto [S, T] : HW) {
ans += calc(S, T, x);
}
return ans;
};
std::int64_t l = 0, r = 1'000'000'001;
while (l <= r) {
auto m = l + (r - l) / 2;
if (f(m) <= f(m + 1)) {
r = m - 1;
} else {
l = m + 1;
}
}
ans += f(l);
std::cout << ans << "\n";
return 0;
}
std::set<int> st;
for (auto [P, S, Q, T] : PSQT) {
st.insert(S);
st.insert(T);
}
std::int64_t tan = LLONG_MAX;
for (auto i : st) {
for (auto j : st) {
if (i == j) {
continue;
}
std::int64_t res = 0;
for (auto [H, W] : HW) {
res += std::min(calc(H, W, i), calc(H, W, j));
}
tan = std::min(tan, res);
}
}
ans += tan;
std::cout << ans << "\n";
return 0;
}
Compilation message
Palembang_Bridges.cpp: In function 'void vec_out(const std::vector<int>&)':
Palembang_Bridges.cpp:14:15: warning: unused variable 'x' [-Wunused-variable]
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
1 ms |
464 KB |
Output is correct |
4 |
Correct |
1 ms |
348 KB |
Output is correct |
5 |
Correct |
1 ms |
348 KB |
Output is correct |
6 |
Correct |
1 ms |
348 KB |
Output is correct |
7 |
Correct |
1 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
1 ms |
348 KB |
Output is correct |
10 |
Correct |
1 ms |
604 KB |
Output is correct |
11 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
464 KB |
Output is correct |
4 |
Correct |
1 ms |
348 KB |
Output is correct |
5 |
Correct |
1 ms |
348 KB |
Output is correct |
6 |
Correct |
1 ms |
348 KB |
Output is correct |
7 |
Correct |
1 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
344 KB |
Output is correct |
9 |
Correct |
1 ms |
348 KB |
Output is correct |
10 |
Correct |
1 ms |
348 KB |
Output is correct |
11 |
Correct |
1 ms |
508 KB |
Output is correct |
12 |
Correct |
20 ms |
6360 KB |
Output is correct |
13 |
Correct |
28 ms |
7888 KB |
Output is correct |
14 |
Correct |
21 ms |
6612 KB |
Output is correct |
15 |
Correct |
17 ms |
4572 KB |
Output is correct |
16 |
Correct |
26 ms |
7268 KB |
Output is correct |
17 |
Correct |
27 ms |
7748 KB |
Output is correct |
18 |
Correct |
31 ms |
7816 KB |
Output is correct |
19 |
Correct |
31 ms |
7888 KB |
Output is correct |
20 |
Correct |
27 ms |
7384 KB |
Output is correct |
21 |
Correct |
27 ms |
7632 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
10 ms |
484 KB |
Output is correct |
5 |
Correct |
3 ms |
352 KB |
Output is correct |
6 |
Correct |
1 ms |
452 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
12 ms |
472 KB |
Output is correct |
9 |
Correct |
15 ms |
468 KB |
Output is correct |
10 |
Correct |
11 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
12 ms |
472 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
10 ms |
348 KB |
Output is correct |
5 |
Correct |
3 ms |
348 KB |
Output is correct |
6 |
Correct |
1 ms |
344 KB |
Output is correct |
7 |
Correct |
1 ms |
600 KB |
Output is correct |
8 |
Correct |
12 ms |
476 KB |
Output is correct |
9 |
Correct |
12 ms |
348 KB |
Output is correct |
10 |
Correct |
11 ms |
480 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
12 ms |
348 KB |
Output is correct |
13 |
Correct |
0 ms |
348 KB |
Output is correct |
14 |
Correct |
27 ms |
348 KB |
Output is correct |
15 |
Execution timed out |
2044 ms |
604 KB |
Time limit exceeded |
16 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
1 ms |
348 KB |
Output is correct |
4 |
Correct |
10 ms |
476 KB |
Output is correct |
5 |
Correct |
3 ms |
460 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
13 ms |
348 KB |
Output is correct |
9 |
Correct |
12 ms |
600 KB |
Output is correct |
10 |
Correct |
11 ms |
348 KB |
Output is correct |
11 |
Correct |
1 ms |
348 KB |
Output is correct |
12 |
Correct |
13 ms |
348 KB |
Output is correct |
13 |
Correct |
1 ms |
348 KB |
Output is correct |
14 |
Correct |
27 ms |
348 KB |
Output is correct |
15 |
Execution timed out |
2016 ms |
600 KB |
Time limit exceeded |
16 |
Halted |
0 ms |
0 KB |
- |