Submission #74519595


Source Code Expand

// C++14

#ifndef use_int128
# define use_int128 1
#endif

#include <cstdint>
#include <type_traits>
#include <limits>
#include <iterator>
#include <numeric>
#include <functional>
#include <iostream>
#include <algorithm>

#define expect(cond) __builtin_expect(static_cast<bool>(cond), true)
#define unexpect(cond) __builtin_expect(static_cast<bool>(cond), false)

namespace modint_nm {

    using u32 = std::uint32_t;
    using u64 = std::uint64_t;
    using umx = std::uintmax_t;
    using i32 = std::int32_t;
    using imx = std::intmax_t;

    // for primitive root
    constexpr u32 phi(u32 n) noexcept {
        u32 ph = n;
        for (u32 i = 2; u64(i) * i <= n; ++i)if (n % i == 0u){ph = ph / i * (i - 1);while (n % i == 0u)n /= i;}
        return n > 1? ph / n * (n - 1) : ph;
    }
    constexpr bool is_prime(u32 v) noexcept {
        if (v <= 1)return 0;
        for (u32 i = 2; u64(i) * i <= v; ++i)if (v % i == 0)return 0;
        return 1;
    }

    template <u32 mod, typename type, typename = void> struct modval_t;
    template <u32 mod, typename type> struct modval_t <mod, type, std::enable_if_t<std::is_unsigned<type>::value> >
        { static constexpr u32 modval(type v) noexcept { return v % mod; } };
    template <u32 mod, typename type> struct modval_t <mod, type, std::enable_if_t<std::is_signed<type>::value> >
        { static constexpr u32 modval(type v) noexcept { v %= i32(mod);return v < 0? v + mod : v; } };
    template <u32 mod, typename type> struct modval_t <mod, type, std::enable_if_t<std::is_floating_point<type>::value> >
        { static constexpr u32 modval(type v) noexcept { return modval_t<mod, imx>::modval(imx(v)); } };
    #if use_int128
    template <u32 mod> struct modval_t <mod, __int128_t>
        { static constexpr u32 modval(__int128_t v) noexcept { v %= i32(mod);return v < 0? v + mod : v; } };
    template <u32 mod> struct modval_t <mod, __uint128_t>
        { static constexpr u32 modval(__uint128_t v) noexcept { return v % mod; } };
    #endif

    template <u32 mod> constexpr auto modsplus(u32 &a, u32 b) noexcept
        -> std::enable_if_t<(std::numeric_limits<u32>::max() / 2 + 1 < mod), void> { if (a >= mod - b)a -= mod - b;else a += b; }
    template <u32 mod> constexpr auto modsplus(u32 &a, u32 b) noexcept
        -> std::enable_if_t<std::numeric_limits<u32>::max() / 2 + 1 >= mod, void> { a += b;if (a >= mod)a -= mod; }
    template <u32 mod> constexpr auto modplus(u32 a, u32 b) noexcept
        -> std::enable_if_t<(std::numeric_limits<u32>::max() / 2 + 1 < mod), u32> { return a >= mod - b? a - (mod - b) : a + b; }
    template <u32 mod> constexpr auto modplus(u32 a, u32 b) noexcept
        -> std::enable_if_t<std::numeric_limits<u32>::max() / 2 + 1 >= mod, u32> { a += b;return a >= mod? a - mod : a; }

    template <u32 mod> constexpr void modssubt(u32 &a, u32 b) noexcept { if (a < b)a += mod - b; else a -= b; }
    template <u32 mod> constexpr u32 modsubt(u32 a, u32 b) noexcept { return a < b? a + (mod - b) : a - b; }

    template <u32 mod> constexpr auto modmult(u32 a, u32 b) noexcept
        -> std::enable_if_t<(u64(mod - 1) * (mod - 1) <= u32(-1)), u32> { return a * b % mod; }
    template <u32 mod> constexpr auto modmult(u32 a, u32 b) noexcept
        -> std::enable_if_t<(u64(mod - 1) * (mod - 1) > u32(-1)), u32> { return u64(a) * b % mod; }
    template <u32 mod> constexpr void modsmult(u32 &a, u32 b) noexcept { a = modmult<mod>(a, b); }

    template <u32 mod> constexpr u32 modfpow(u32 a, umx b) noexcept
        { u32 ret = 1;for (; b; b >>= 1, a = modmult<mod>(a, a))if (b & 1)ret = modmult<mod>(ret, a);return ret; }
    template <u32 mod> constexpr void modsfpow(u32 &a, umx b) noexcept { a = modfpow<mod>(a, b); }

    // 假定值在模范围内,减少一次取模操作
    struct in_mod_range_t { };
    constexpr in_mod_range_t in_mod_range {};

    struct modint_tag { };

    template <u32> struct modint;

    template <u32 mod_>
        struct modint {
            typedef modint_tag is_modint_t;
            static constexpr u32 mod = mod_;
            static constexpr bool mod_is_prime = is_prime(mod);
            u32 val;
            constexpr modint() noexcept : val() { }
            template <typename Val_t, typename = decltype(modval_t<mod, Val_t>::modval(std::declval<Val_t>())) >
                constexpr modint(Val_t Val) noexcept : val(modval_t<mod, Val_t>::modval(Val)) {}
            constexpr modint(const modint &) noexcept = default;
            constexpr modint(modint &&) noexcept = default;
            constexpr modint(in_mod_range_t, u32 v) noexcept : val{v} {}
            template <typename Val_t> constexpr modint &operator = (Val_t Val) noexcept
                { val = modval_t<mod, Val_t>::modval(Val);return *this; }
            constexpr modint &operator = (const modint &) noexcept = default;
            constexpr modint &operator = (modint &&) noexcept = default;
            constexpr modint &operator += (modint o) noexcept { modsplus<mod>(val, o.val);return *this; }
            constexpr modint &operator -= (modint o) noexcept { modssubt<mod>(val, o.val);return *this; }
            constexpr modint &operator *= (modint o) noexcept { modsmult<mod>(val, o.val);return *this; }
            constexpr modint &operator ++ () noexcept {if (unexpect(++val == mod))val = 0;return *this;}
            constexpr modint operator ++ (int) noexcept {modint R = *this;if (unexpect(++val == mod))val = 0;return R;}
            constexpr modint &operator -- () noexcept {if (unexpect(--val == u32(-1)))val = mod - 1;return *this;}
            constexpr modint operator -- (int) noexcept {modint R = *this;if (unexpect(--val == u32(-1)))val = mod - 1;return R;}
            constexpr modint operator - () const noexcept { return modint(in_mod_range, val? mod - val : 0u); }
            constexpr modint inv() const noexcept { return pow(*this, phi_mod - 1); }
            constexpr modint &operator /= (modint o) noexcept { modsmult<mod>(val, o.inv().val);return *this; }
            constexpr u32 value() const noexcept { return val; }
            explicit constexpr operator u32 () const noexcept { return val; }
            template <typename _Tp> constexpr operator _Tp () const noexcept { return (_Tp)val; }

            constexpr modint& plussubt(bool v, modint x) noexcept //+=(-1)^v*x
                { if (v)*this -= x; else *this += x; return *this; }
            template <typename _Tp, typename = std::enable_if_t<std::is_integral<_Tp>::value> >
                constexpr modint& plussubt(_Tp v, modint x) noexcept //+=(-1)^v*x
                    { if (v & 1)*this -= x; else *this += x; return *this; }

            static constexpr modint nan = modint(in_mod_range, mod);

            static constexpr u32 phi_mod = phi(mod);

        }; // __is_trivially_copyable(modint<...>) = true

    template <u32 mod>
        constexpr u32 modint<mod>::mod;
    template <u32 mod>
        constexpr modint<mod> modint<mod>::nan;
    template <u32 mod>
        constexpr bool modint<mod>::mod_is_prime;
    template <u32 mod>
        constexpr u32 modint<mod>::phi_mod;

    template <typename...> using __void_t = void;
    template <u32 mod, typename type> struct modval_t <mod, type,
            __void_t<std::enable_if_t<!std::is_arithmetic<type>::value>, decltype(type::operator modint<mod>()) > >
        { static constexpr u32 modval(type v) noexcept { return ((modint<mod>)v).value(); } };

    template <u32 mod> constexpr modint<mod> operator + (modint<mod> a, modint<mod> b) noexcept
        { return modint<mod>(in_mod_range, modplus<mod>(a.val, b.val)); }
    template <u32 mod, typename _T> constexpr modint<mod> operator + (_T a, modint<mod> b) noexcept { return modint<mod>(a) + b; }
    template <u32 mod, typename _T> constexpr modint<mod> operator + (modint<mod> a, _T b) noexcept { return a + modint<mod>(b); }

    template <u32 mod> constexpr modint<mod> operator - (modint<mod> a, modint<mod> b) noexcept
        { return modint<mod>(in_mod_range, modsubt<mod>(a.val, b.val)); }
    template <u32 mod, typename _T> constexpr modint<mod> operator - (_T a, modint<mod> b) noexcept { return modint<mod>(a) - b; }
    template <u32 mod, typename _T> constexpr modint<mod> operator - (modint<mod> a, _T b) noexcept { return a - modint<mod>(b); }

    template <u32 mod> constexpr modint<mod> operator * (modint<mod> a, modint<mod> b) noexcept
        { return modint<mod>(in_mod_range, modmult<mod>(a.val, b.val)); }
    template <u32 mod, typename _T> constexpr modint<mod> operator * (_T a, modint<mod> b) noexcept { return modint<mod>(a) * b; }
    template <u32 mod, typename _T> constexpr modint<mod> operator * (modint<mod> a, _T b) noexcept { return a * modint<mod>(b); }

    template <u32 mod> constexpr modint<mod> operator / (modint<mod> a, modint<mod> b) noexcept
        { return modint<mod>(in_mod_range, modmult<mod>(a.val, b.inv().val)); }
    template <u32 mod, typename _T> constexpr modint<mod> operator / (_T a, modint<mod> b) noexcept { return modint<mod>(a) / b; }
    template <u32 mod, typename _T> constexpr modint<mod> operator / (modint<mod> a, _T b) noexcept { return a / modint<mod>(b); }

    template <typename _Tp, typename = void> struct is_modint : std::false_type { };
    template <typename _Tp> struct is_modint <_Tp, typename _Tp::is_modint_t> : std::true_type { };

    namespace __modint_help {

        template <typename _T>
            constexpr auto __safe_l(_T a, u32 b) noexcept -> std::enable_if_t<std::is_unsigned<_T>::value, bool> {
                return a < b;
            }
        template <typename _T>
            constexpr auto __safe_l(_T a, u32 b) noexcept -> std::enable_if_t<std::is_signed<_T>::value, bool> {
                return a < _T(0)? true : std::make_unsigned_t<_T>(a) < b;
            }
        #if use_int128
        constexpr bool __safe_l(__uint128_t a, u32 b){
            return a < b;
        }
        constexpr bool __safe_l(__int128_t a, u32 b){
            return a < 0? true : __uint128_t(a) < b;
        }
        #endif

    }

    template <u32 mod, typename _T>
        constexpr std::enable_if_t<(mod > 2 && is_prime(mod)) &&
                std::is_convertible<_T, modint<mod - 1> >::value, modint<mod> >
            pow(modint<mod> a, _T b) noexcept
                { return modint<mod>(in_mod_range, modfpow<mod>(a.val, modint<mod - 1>(b).value())); }
    template <u32 mod, typename _T>
        constexpr std::enable_if_t<!(mod > 2 && is_prime(mod)) && std::is_unsigned<_T>::value, modint<mod> >
            pow(modint<mod> a, _T b) noexcept
                { constexpr u32 p = phi(mod); return modint<mod>(in_mod_range, modfpow<mod>(a.val, __modint_help::__safe_l(b, p)? b : b % p + p)); }
    template <u32 mod, typename _T>
        constexpr std::enable_if_t<!(mod > 2 && is_prime(mod)) && std::is_signed<_T>::value, modint<mod> >
            pow(modint<mod> a, _T b) noexcept {
                constexpr u32 p = phi(mod);
                if (b >= 0)return modint<mod>(in_mod_range, modfpow<mod>(a.val, __modint_help::__safe_l(b, p)? b : b % p + p));
                b = -b;
                umx T = umx(__modint_help::__safe_l(b, p)? b : b % p + p) * (p - 1);
                return modint<mod>(in_mod_range, modfpow<mod>(a.val, T < p? T : T % p + p));
            }

    template <u32 mod> constexpr modint<mod> fma(modint<mod> a, modint<mod> b, modint<mod> c) noexcept
        { return modint<mod>(in_mod_range, (u64(a.val) * b.val + c.val) % mod); }
    template <u32 mod> constexpr modint<mod> fma(modint<mod> a, modint<mod> b, u32 c) noexcept
        { return modint<mod>(in_mod_range, (u64(a.val) * b.val + c) % mod); }
    template <u32 mod> constexpr modint<mod> fma(in_mod_range_t, modint<mod> a, modint<mod> b, u64 c) noexcept //assume c + (mod-1)^2 < u64 max
        { return modint<mod>(in_mod_range, (u64(a.val) * b.val + c) % mod); }

    template <u32 mod> constexpr modint<mod> fmam(modint<mod> a, modint<mod> b, modint<mod> c, modint<mod> d) noexcept
        { return modint<mod>(in_mod_range, (u64(a.val) * b.val + u64(c.val) * d.val) % mod); }

    template <u32 mod> constexpr modint<mod> fms(modint<mod> a, modint<mod> b, modint<mod> c) noexcept
        { return modint<mod>(in_mod_range, (u64(a.val) * b.val + mod - c.val) % mod); }

    template <u32 mod> constexpr modint<mod> fmsm(modint<mod> a, modint<mod> b, modint<mod> c, modint<mod> d) noexcept
        { constexpr u64 mm = u64(mod) * mod;return modint<mod>(in_mod_range, (u64(a.val) * b.val + mm - u64(c.val) * d.val) % mod); }

    template <u32 mod> // a += b * c
        constexpr void splusmult(modint<mod> &a, modint<mod> b, modint<mod> c) noexcept { a = fma(b, c, a); }

    template <u32 mod> struct modint_partial_order
        { constexpr bool operator () (modint<mod> a, modint<mod> b) const noexcept { return a.val < b.val; } };// 偏序关系

    template <u32 mod> constexpr bool operator == (modint<mod> a, modint<mod> b) noexcept { return a.val == b.val; }
    template <u32 mod, typename _T> constexpr bool operator == (_T a, modint<mod> b) noexcept { return modint<mod>(a) == b; }
    template <u32 mod, typename _T> constexpr bool operator == (modint<mod> a, _T b) noexcept { return a == modint<mod>(b); }
    template <u32 mod> constexpr bool operator != (modint<mod> a, modint<mod> b) noexcept { return a.val != b.val; }
    template <u32 mod, typename _T> constexpr bool operator != (_T a, modint<mod> b) noexcept { return modint<mod>(a) != b; }
    template <u32 mod, typename _T> constexpr bool operator != (modint<mod> a, _T b) noexcept { return a != modint<mod>(b); }

    template <typename iter_t>
        using is_modint_iter = std::enable_if_t<std::is_base_of<std::random_access_iterator_tag,
            typename std::iterator_traits<iter_t>::iterator_category>::value, typename std::iterator_traits<iter_t>::value_type::is_modint_t>;

    template <typename T>
        struct __idnty {
            using type = T;
        };

    template <typename iter_t, typename = is_modint_iter<iter_t>, u32 mod = std::iterator_traits<iter_t>::value_type::mod>
        constexpr void calc_power(u32 n, iter_t pw, typename __idnty<modint<mod> >::type b){//let pw_i=b^i, 0<=i<n
            if (n == 0)return;
            pw[0] = 1;
            for (u32 i = 1; i < n; ++i)pw[i] = pw[i - 1] * b;
        }

    template <typename iter_t, typename = is_modint_iter<iter_t>, u32 mod = std::iterator_traits<iter_t>::value_type::mod>
        constexpr void sieve_power(u32 n, iter_t pw, u32 e){//let pw_i=i^e, 0<=i<n
            if (n == 0)return;
            if (n == 1){
                pw[0] = 0;
                return;
            }
            bool *npr = new bool[n]{};
            u32 *prm = new u32[n <= 100? n - (n / 2) + 1 : 2 * n / std::__lg(n)]{};
            u32 l = 0;
            pw[0] = 0;
            pw[1] = 1;
            for (u32 i = 2; i < n; ++i){
                if (!npr[i]){
                    pw[i] = pow(modint<mod>(i), e);
                    prm[l++] = i;
                }
                for (u32 j = 0; j < l; ++j){
                    if (u64(i) * prm[j] >= n)break;
                    npr[i * prm[j]] = 1;
                    pw[i * prm[j]] = pw[i] * pw[prm[j]];
                    if (i % prm[j] == 0)break;
                }
            }
            delete [] npr; delete [] prm;
        }

    template <typename iter_t, typename = is_modint_iter<iter_t> >
        constexpr void calc_inv(iter_t bg, iter_t ed){//let bg[i] = bg[i]^{-1}
            constexpr u32 mod = std::iterator_traits<iter_t>::value_type::mod;
            if (bg == ed)return;
            u32 n = ed - bg;
            modint<mod> *s = new modint<mod>[n + 1];
            modint<mod> *sv = new modint<mod>[n + 1];
            s[0] = 1;
            for (u32 i = 1; i <= n; ++i)s[i] = s[i - 1] * bg[i - 1];
            sv[n] = s[n].inv();
            for (u32 i = n; i; --i)sv[i - 1] = sv[i] * bg[i - 1];
            for (u32 i = 1; i <= n; ++i)bg[i - 1] = sv[i] * s[i - 1];
            delete []s; delete []sv;
        }

    template <u32 mod> constexpr bool isnan(modint<mod> a) noexcept { return a == modint<mod>::nan; }

    // 加速求和
    template <u32 mod>
        struct accumulate_temporary_result {
            umx val;
            static constexpr umx limit = std::numeric_limits<umx>::max() - mod;
            static constexpr umx limit2 = std::numeric_limits<umx>::max() - umx(mod) * mod;
            constexpr accumulate_temporary_result() noexcept : val() {}
            constexpr accumulate_temporary_result(modint<mod> v) noexcept : val(v.value()) {}
            constexpr accumulate_temporary_result(umx v) noexcept : val(v) {}
            constexpr accumulate_temporary_result(const accumulate_temporary_result &r) noexcept : val(r.val) {}
            constexpr accumulate_temporary_result(const accumulate_temporary_result &&r) noexcept : val(r.val) {}
            template <typename _Val> constexpr accumulate_temporary_result(_Val v) noexcept : val(modval_t<mod, _Val>::modval(v)) {}
            template <typename _Val> constexpr accumulate_temporary_result &operator += (umx v) noexcept
                { if (unexpect(val >= limit))val %= mod; val += modval_t<mod, _Val>::modval(v); return *this; }
            constexpr accumulate_temporary_result &operator += (modint<mod> v) noexcept
                { if (unexpect(val >= limit))val %= mod; val += v.value(); return *this; }
            constexpr void plus_modint_prod(modint<mod> a, modint<mod> b) noexcept
                { if (unexpect(val >= limit2))val %= mod; val += umx(a.value()) * b.value(); }// += a * b
            constexpr umx value() const noexcept { return val; }
            constexpr modint<mod> mod_val() const noexcept { return modint<mod>(val); }
            constexpr operator modint<mod> () const noexcept { return modint<mod>(val); }
        };

    // 多项相加优化
    template <typename iter_t, typename iter_value_t = typename std::iterator_traits<iter_t>::value_type,
            u32 mod = iter_value_t::mod>
        constexpr modint<mod> mod_plus(iter_t bg, iter_t ed){
            typedef modint<mod> type;
            u64 sum = std::accumulate(bg, ed, u64(), [](u64 a, iter_value_t v){
                return a + type(v).value();
            });
            return type(sum);
        }
    template <typename iter_t, u32 mod = std::iterator_traits<iter_t>::value_type::mod>
        constexpr modint<mod> mod_plus(iter_t bg, u32 n){
            typedef modint<mod> type;
            if (n < 4){
                switch (n){
                    case 0: return type();
                    case 1: return *bg;
                    case 2: return *bg + *(bg + 1);
                    case 3: return *bg + *(bg + 1) + *(bg + 2);
                    default : __builtin_unreachable();
                }
            }
            return mod_plus(bg, bg + n);
        }

    // 多项相乘
    template <typename iter_t, u32 mod = std::iterator_traits<iter_t>::value_type::mod>
        constexpr modint<mod> mod_mult(iter_t bg, iter_t ed){
            typedef modint<mod> type;
            return std::accumulate(bg, ed, type(1), std::multiplies<type>{});
        }

    template <typename iter1_t, typename iter2_t,
            u32 mod = std::iterator_traits<iter1_t>::value_type::mod,
            u32 mod2 = std::iterator_traits<iter2_t>::value_type::mod,
            typename = std::enable_if_t<mod == mod2> >
        constexpr modint<mod> mod_inner_product(iter1_t bg1, iter1_t ed1, iter2_t bg2, modint<mod> init = 0){
            accumulate_temporary_result<mod> atr(init);
            for (; bg1 != ed1; ++bg1, ++bg2)atr.plus_modint_prod(*bg1, *bg2);
            return atr.mod_val();
        }

    inline namespace predefine_modint {
        using modp0 = modint<998244353>;
        using modp1 = modint<1000000007>;
        using modp2 = modint<167772161>;
        using modp3 = modint<469762049>;
        using modp4 = modint<754974721>;
        using modp5 = modint<1004535809>;
    }

}

#include <functional>

namespace std {

    using u32 = std::uint32_t;
    using u64 = std::uint64_t;

    template <u32 mod> inline ostream &operator << (ostream &os, modint_nm::modint<mod> v){ return os << v.value(); }
    template <u32 mod> inline istream &operator >> (istream &is, modint_nm::modint<mod> &v){ u64 x;is >> x;v = x;return is; }

    template <u32 mod>
        struct numeric_limits <modint_nm::modint<mod> > : numeric_limits<u32> { };

    template <u32 mod>
        struct hash<modint_nm::modint<mod> > {
            inline size_t operator () (const modint_nm::modint<mod> &v) const {
                return hash<u32>{}(v.value());
            }
        };

    template <u32 mod> constexpr modint_nm::modint<mod> fma(modint_nm::modint<mod> a,
            modint_nm::modint<mod> b, modint_nm::modint<mod> c) noexcept
        { return modint_nm::fma(a, b, c); }
    template <u32 mod> constexpr modint_nm::modint<mod> fma(modint_nm::modint<mod> a,
            modint_nm::modint<mod> b, u32 c) noexcept
        { return modint_nm::fma(a, b, c); }

}

/**
 * @todo
 * 1. 加入左移和右移支持
 * 2. 加入对卡特兰数等常见数列的支持
 * 3. 部分函数加入参数为常量时的优化
 * 4. 加入模数非质数时的除法
 */


#include <bits/stdc++.h>
using namespace std;
using mod = modint_nm::modp0;
int l, k, n, a[500010];
int main(){
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cin >> l >> k >> n;
    for (int i = 1; i <= n; ++i)cin >> a[i], a[i + n] = a[i] + l;
    mod rs = n * pow(mod(2), n - 1);
    if (n >= 3){
        mod ct = 0;
        for (int i = 1; i <= n; ++i){
            auto it = lower_bound(a + i + 2, a + n + i, a[i] + k);
            ct += it - (a + i + 2);
            // for (int j = i + 2; j <= n + i - 1; ++j)
            //     ct += a[j] < a[i] + k;
        }
        rs += ct * pow(mod(2), n - 3);
    }
    cout << rs << endl;
    return 0;
}

Submission Info

Submission Time
Task A - Chords and Checkered
User szt100309
Language C++23 (GCC 15.2.0)
Score 700
Code Size 22433 Byte
Status AC
Exec Time 21 ms
Memory 5700 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 4
AC × 32
Set Name Test Cases
Sample 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 00-sample-004.txt
All 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 00-sample-004.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 2 ms 3368 KiB
00-sample-002.txt AC 2 ms 3584 KiB
00-sample-003.txt AC 2 ms 3504 KiB
00-sample-004.txt AC 1 ms 3508 KiB
01-001.txt AC 1 ms 3508 KiB
01-002.txt AC 1 ms 3500 KiB
01-003.txt AC 1 ms 3512 KiB
01-004.txt AC 1 ms 3580 KiB
01-005.txt AC 1 ms 3396 KiB
01-006.txt AC 5 ms 4164 KiB
01-007.txt AC 9 ms 4804 KiB
01-008.txt AC 5 ms 4036 KiB
01-009.txt AC 3 ms 3692 KiB
01-010.txt AC 10 ms 4728 KiB
01-011.txt AC 18 ms 5632 KiB
01-012.txt AC 14 ms 5488 KiB
01-013.txt AC 17 ms 5488 KiB
01-014.txt AC 16 ms 5560 KiB
01-015.txt AC 17 ms 5460 KiB
01-016.txt AC 15 ms 5668 KiB
01-017.txt AC 15 ms 5524 KiB
01-018.txt AC 19 ms 5444 KiB
01-019.txt AC 16 ms 5444 KiB
01-020.txt AC 18 ms 5700 KiB
01-021.txt AC 13 ms 5524 KiB
01-022.txt AC 13 ms 5628 KiB
01-023.txt AC 14 ms 5524 KiB
01-024.txt AC 19 ms 5468 KiB
01-025.txt AC 19 ms 5628 KiB
01-026.txt AC 21 ms 5400 KiB
01-027.txt AC 20 ms 5572 KiB
01-028.txt AC 19 ms 5552 KiB