Submission #958202

# Submission time Handle Problem Language Result Execution time Memory
958202 2024-04-05T06:58:35 Z riariti Palembang Bridges (APIO15_bridge) C++17
22 / 100
27 ms 7896 KB
#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

const auto 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 f = [&](int x) {
        std::int64_t ans = 0;
        for (auto [S, T] : HW) {
            // +1 for bridge
            ans += std::abs(S - x) + std::abs(T - x) + 1;
        }

        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))) {
            l = m + 1;
        } else {
            r = m - 1;
        }
    }
    ans += f(l);

    std::cout << ans << "\n";

    return 0;
}

Compilation message

Palembang_Bridges.cpp: In lambda function:
Palembang_Bridges.cpp:14:15: warning: unused variable 'x' [-Wunused-variable]
# 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 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 468 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 348 KB Output is correct
11 Correct 1 ms 600 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 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 344 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 468 KB Output is correct
11 Correct 1 ms 344 KB Output is correct
12 Correct 19 ms 6360 KB Output is correct
13 Correct 27 ms 7820 KB Output is correct
14 Correct 20 ms 6616 KB Output is correct
15 Correct 19 ms 4852 KB Output is correct
16 Correct 24 ms 7384 KB Output is correct
17 Correct 27 ms 7896 KB Output is correct
18 Correct 25 ms 7456 KB Output is correct
19 Correct 26 ms 7892 KB Output is correct
20 Correct 26 ms 7384 KB Output is correct
21 Correct 26 ms 7548 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 Incorrect 0 ms 348 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Incorrect 1 ms 344 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 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 Incorrect 0 ms 348 KB Output isn't correct
4 Halted 0 ms 0 KB -