Submission #768760

# Submission time Handle Problem Language Result Execution time Memory
768760 2023-06-28T14:42:30 Z raysh07 Taxis (POI13_tak) C++17
100 / 100
112 ms 4180 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 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 328 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 724 KB Output is correct
2 Correct 2 ms 596 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 10 ms 852 KB Output is correct
2 Correct 10 ms 852 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 18 ms 1236 KB Output is correct
2 Correct 36 ms 2004 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 49 ms 2644 KB Output is correct
2 Correct 60 ms 2900 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 112 ms 4180 KB Output is correct
2 Correct 72 ms 3412 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 62 ms 4180 KB Output is correct
2 Correct 88 ms 4180 KB Output is correct