Submission #391185

# Submission time Handle Problem Language Result Execution time Memory
391185 2021-04-18T07:23:35 Z palilo Taxis (POI13_tak) C++17
100 / 100
135 ms 4184 KB
#include <bits/stdc++.h>
using namespace std;

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
#ifdef home
    freopen("in", "r", stdin);
    freopen("out", "w", stdout);
#endif
    int64_t m, d;
    int n;
    cin >> m >> d >> n;

    vector<int64_t> a(n);
    for (auto& x : a) cin >> x;

    sort(a.begin(), a.end(), greater<int64_t>());

    int64_t last_taxi;
    if (auto it = upper_bound(a.begin(), a.end(), m - d, greater<int64_t>()); it == a.begin())
        return cout << 0, 0;
    else {
        last_taxi = *prev(it);
        a.erase(prev(it));
    }
    int64_t mid = d - (last_taxi - (m - d)) / 2;
    // mid에 도착하면 한 번에 골인 가능

    int64_t pos = 0;
    int ans = 0;
    for (const auto& x : a) {
        if (pos >= mid) break;
        if (x <= d - pos) return cout << 0, 0;
        pos += x - (d - pos);
        ++ans;
    }
    cout << (pos < mid ? 0 : ans + (pos < m));
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 10 ms 716 KB Output is correct
2 Correct 3 ms 588 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 15 ms 844 KB Output is correct
2 Correct 15 ms 844 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 29 ms 1228 KB Output is correct
2 Correct 55 ms 1996 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 72 ms 2636 KB Output is correct
2 Correct 87 ms 2892 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 135 ms 4172 KB Output is correct
2 Correct 116 ms 3404 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 105 ms 4172 KB Output is correct
2 Correct 129 ms 4184 KB Output is correct