Submission #70374316


Source Code Expand

#include <bits/stdc++.h>
#include <atcoder/all>

#define all(x) (x).begin(), (x).end()
#define fix(x) fixed << setprecision(x)
#define rep(i, start, end) for (auto i = (start); (i) < (end); (i)++)
#define rrep(i, start, end) for (auto i = (start); (i) >= (end); (i)--)

constexpr auto PI = 3.14159265358979;
constexpr auto INF = 1e+9;
constexpr auto INFL = 1LL << 60;

using namespace std;
using namespace atcoder;
using ll = long long;
using lld = long double;
// using mint = modint1000000007;
using mint = modint998244353;
using Pair_int = pair<int, int>;
using Pair_ll = pair<ll, ll>;
template <class T>
using Graph = vector<vector<T>>;

template <class T1, class T2>
inline auto div_floor(T1 a, T2 b)
{
    if (b < 0)
        a *= -1, b *= -1;
    if (a >= 0)
        return a / b;
    else
        return (a + 1) / b - 1;
}
template <class T1, class T2>
inline auto div_ceil(T1 a, T2 b)
{
    if (b < 0)
        a *= -1, b *= -1;
    if (a <= 0)
        return a / b;
    else
        return (a - 1) / b + 1;
}
ll pow(ll x, ll n)
{
    ll res = 1;
    while (n > 0)
    {
        if (n & 1)
            res *= x;
        x *= x;
        n >>= 1;
    }
    return res;
}
ll pow_mod(ll x, ll n, ll mod)
{
    ll res = 1;
    while (n > 0)
    {
        if (n & 1)
            res = res * x % mod;
        x = x * x % mod;
        n >>= 1;
    }
    return res;
}
ll gcd(ll x, ll y)
{
    if (x < y)
        swap(x, y);
    ll r;
    while (y > 0)
    {
        r = x % y;
        x = y;
        y = r;
    }
    return x;
}
ll lcm(ll x, ll y) { return ll(x / gcd(x, y)) * y; }
ll nCk(ll n, ll r)
{
    if (r < 0 || n < r)
        return 0;
    ll ans = 1;
    for (ll i = 1; i <= r; i++)
    {
        ans *= n--;
        ans /= i;
    }
    return ans;
}
int get_rand(int seed, int min, int max)
{
    static mt19937_64 mt64(seed);
    uniform_int_distribution<int> get_rand_int(min, max);
    return get_rand_int(mt64);
}
template <typename T>
inline bool chmax(T &a, T b) { return ((a < b) ? (a = b, true) : (false)); }
template <typename T>
inline bool chmin(T &a, T b) { return ((a > b) ? (a = b, true) : (false)); }
template <class T1, class T2>
inline auto mod(T1 x, T2 r) { return (x % r + r) % r; }

// ======================================== //

int main()
{
    int N, L, K;
    cin >> N >> L >> K;
    vector<int> A(N);
    rep(i, 0, N) cin >> A[i];

    auto is_ok = [&](ll x) -> bool
    {
        ll cnt = 0;
        ll last = 0;
        rep(i, 0, N)
        {
            if (A[i] - last >= x)
            {
                cnt++;
                last = A[i];
            }
        }

        if (L - last >= x)
            cnt++;

        return (cnt >= K + 1);
    };

    ll ok = -1, ng = L + 1;
    while (ng - ok > 1)
    {
        ll mid = midpoint(ok, ng);
        if (is_ok(mid))
            ok = mid;
        else
            ng = mid;
    }

    cout << ok << endl;

    return 0;
}

Submission Info

Submission Time
Task 001 - Yokan Party(★4)
User Yuulis
Language C++ 23 (gcc 12.2)
Score 4
Code Size 3060 Byte
Status AC
Exec Time 32 ms
Memory 3840 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 4 / 4
Status
AC × 5
AC × 29
Set Name Test Cases
Sample 01_01_sample_picture_01.txt, 01_02_sample_01.txt, 01_02_sample_02.txt, 01_02_sample_03.txt, 01_02_sample_04.txt
All 01_01_sample_picture_01.txt, 01_02_sample_01.txt, 01_02_sample_02.txt, 01_02_sample_03.txt, 01_02_sample_04.txt, 02_fixed_01.txt, 02_fixed_02.txt, 02_fixed_03.txt, 03_k_sensitive_01.txt, 03_k_sensitive_02.txt, 03_k_sensitive_03.txt, 03_k_sensitive_04.txt, 04_random_small_01.txt, 04_random_small_02.txt, 04_random_small_03.txt, 05_random_bias_01.txt, 05_random_bias_02.txt, 05_random_bias_03.txt, 06_random_01.txt, 06_random_02.txt, 06_random_03.txt, 06_random_04.txt, 07_random_max_01.txt, 07_random_max_02.txt, 07_random_max_03.txt, 07_random_max_04.txt, 08_equally_01.txt, 08_equally_02.txt, 09_max_01.txt
Case Name Status Exec Time Memory
01_01_sample_picture_01.txt AC 6 ms 3484 KiB
01_02_sample_01.txt AC 1 ms 3700 KiB
01_02_sample_02.txt AC 1 ms 3608 KiB
01_02_sample_03.txt AC 1 ms 3544 KiB
01_02_sample_04.txt AC 1 ms 3504 KiB
02_fixed_01.txt AC 1 ms 3496 KiB
02_fixed_02.txt AC 19 ms 3772 KiB
02_fixed_03.txt AC 27 ms 3744 KiB
03_k_sensitive_01.txt AC 1 ms 3492 KiB
03_k_sensitive_02.txt AC 1 ms 3544 KiB
03_k_sensitive_03.txt AC 1 ms 3496 KiB
03_k_sensitive_04.txt AC 1 ms 3612 KiB
04_random_small_01.txt AC 1 ms 3612 KiB
04_random_small_02.txt AC 1 ms 3500 KiB
04_random_small_03.txt AC 1 ms 3416 KiB
05_random_bias_01.txt AC 21 ms 3492 KiB
05_random_bias_02.txt AC 27 ms 3692 KiB
05_random_bias_03.txt AC 27 ms 3716 KiB
06_random_01.txt AC 26 ms 3696 KiB
06_random_02.txt AC 21 ms 3476 KiB
06_random_03.txt AC 27 ms 3540 KiB
06_random_04.txt AC 30 ms 3540 KiB
07_random_max_01.txt AC 27 ms 3556 KiB
07_random_max_02.txt AC 32 ms 3496 KiB
07_random_max_03.txt AC 29 ms 3492 KiB
07_random_max_04.txt AC 29 ms 3840 KiB
08_equally_01.txt AC 27 ms 3676 KiB
08_equally_02.txt AC 17 ms 3636 KiB
09_max_01.txt AC 28 ms 3716 KiB