QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#336965#8276. Code Congestionucup-team987#AC ✓614ms898880kbC++2316.0kb2024-02-25 00:00:462024-02-25 00:00:47

Judging History

你现在查看的是最新测评结果

  • [2024-02-25 00:00:47]
  • 评测
  • 测评结果:AC
  • 用时:614ms
  • 内存:898880kb
  • [2024-02-25 00:00:46]
  • 提交

answer

#if __INCLUDE_LEVEL__ == 0

#include __BASE_FILE__

namespace {

using mint = atcoder::modint998244353;

void solve() {
  int n, T;
  scan(n, T);
  std::vector<int> a(n);
  scan(a);
  std::vector<int> t(n);
  scan(t);

  if (std::accumulate(t.begin(), t.end(), 0) <= T) {
    print(std::accumulate(a.begin(), a.end(), 0) * mint(2).pow(n));
    return;
  }

  std::vector pref0(n + 1, std::vector<mint>(T + 1));
  std::vector pref1(n + 1, std::vector<mint>(T + 1));
  pref0[0][0] = 1;
  for (const int i : rep(n)) {
    ranges::copy(pref0[i], pref0[i + 1].begin());
    ranges::copy(pref1[i], pref1[i + 1].begin());
    for (const int j : rep(T - t[i] + 1)) {
      pref0[i + 1][j + t[i]] += pref0[i][j];
      pref1[i + 1][j + t[i]] += pref1[i][j] + pref0[i][j] * a[i];
    }
  }

  std::vector suff0(n + 1, std::vector<mint>(T + 1));
  std::vector suff1(n + 1, std::vector<mint>(T + 1));
  suff0[n][0] = 1;
  for (const int i : rep(n) | views::reverse) {
    ranges::copy(suff0[i + 1], suff0[i].begin());
    ranges::copy(suff1[i + 1], suff1[i].begin());
    for (const int j : rep(T - t[i] + 1)) {
      suff0[i][j + t[i]] += suff0[i + 1][j];
      suff1[i][j + t[i]] += suff1[i + 1][j] + suff0[i + 1][j] * a[i];
    }
  }

  mint ans = 0;
  // 0 の場合
  for (const int k : rep(n)) {
    mint cur = 0;
    for (const int j : rep1(T - t[k] + 1, T)) {
      cur += pref1[k][j];
    }
    ans += cur * mint(2).pow(n - k - 1);
  }
  // 1 の場合
  mint sum_a = 0;
  for (const int k : rep(n)) {
    mint cur = 0;
    for (const int j : rep1(std::max(T - t[k] + 1, 0), T)) {
      cur += suff0[k + 1][j] * sum_a + suff1[k + 1][j];
    }
    ans += cur * mint(2).pow(k);

    T -= t[k];
    if (T < 0) {
      break;
    }
    sum_a += a[k];
  }

  print(ans);
}

}  // namespace

int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  std::cout << std::setprecision(DBL_DECIMAL_DIG);

  solve();
}

#else  // __INCLUDE_LEVEL__

#include <bits/stdc++.h>

namespace atcoder {

namespace internal {

constexpr long long safe_mod(long long x, long long m) {
  x %= m;
  if (x < 0) x += m;
  return x;
}

struct barrett {
  unsigned int _m;
  unsigned long long im;

  explicit barrett(unsigned int m) : _m(m), im((unsigned long long)(-1) / m + 1) {}

  unsigned int umod() const { return _m; }

  unsigned int mul(unsigned int a, unsigned int b) const {
    unsigned long long z = a;
    z *= b;
    unsigned long long x = (unsigned long long)(((unsigned __int128)(z)*im) >> 64);
    unsigned long long y = x * _m;
    return (unsigned int)(z - y + (z < y ? _m : 0));
  }
};

constexpr long long pow_mod_constexpr(long long x, long long n, int m) {
  if (m == 1) return 0;
  unsigned int _m = (unsigned int)(m);
  unsigned long long r = 1;
  unsigned long long y = safe_mod(x, m);
  while (n) {
    if (n & 1) r = (r * y) % _m;
    y = (y * y) % _m;
    n >>= 1;
  }
  return r;
}

constexpr bool is_prime_constexpr(int n) {
  if (n <= 1) return false;
  if (n == 2 || n == 7 || n == 61) return true;
  if (n % 2 == 0) return false;
  long long d = n - 1;
  while (d % 2 == 0) d /= 2;
  constexpr long long bases[3] = {2, 7, 61};
  for (long long a : bases) {
    long long t = d;
    long long y = pow_mod_constexpr(a, t, n);
    while (t != n - 1 && y != 1 && y != n - 1) {
      y = y * y % n;
      t <<= 1;
    }
    if (y != n - 1 && t % 2 == 0) {
      return false;
    }
  }
  return true;
}
template <int n>
constexpr bool is_prime = is_prime_constexpr(n);

constexpr std::pair<long long, long long> inv_gcd(long long a, long long b) {
  a = safe_mod(a, b);
  if (a == 0) return {b, 0};

  long long s = b, t = a;
  long long m0 = 0, m1 = 1;

  while (t) {
    long long u = s / t;
    s -= t * u;
    m0 -= m1 * u;

    auto tmp = s;
    s = t;
    t = tmp;
    tmp = m0;
    m0 = m1;
    m1 = tmp;
  }
  if (m0 < 0) m0 += b / s;
  return {s, m0};
}

constexpr int primitive_root_constexpr(int m) {
  if (m == 2) return 1;
  if (m == 167772161) return 3;
  if (m == 469762049) return 3;
  if (m == 754974721) return 11;
  if (m == 998244353) return 3;
  int divs[20] = {};
  divs[0] = 2;
  int cnt = 1;
  int x = (m - 1) / 2;
  while (x % 2 == 0) x /= 2;
  for (int i = 3; (long long)(i)*i <= x; i += 2) {
    if (x % i == 0) {
      divs[cnt++] = i;
      while (x % i == 0) {
        x /= i;
      }
    }
  }
  if (x > 1) {
    divs[cnt++] = x;
  }
  for (int g = 2;; g++) {
    bool ok = true;
    for (int i = 0; i < cnt; i++) {
      if (pow_mod_constexpr(g, (m - 1) / divs[i], m) == 1) {
        ok = false;
        break;
      }
    }
    if (ok) return g;
  }
}
template <int m>
constexpr int primitive_root = primitive_root_constexpr(m);

unsigned long long floor_sum_unsigned(unsigned long long n, unsigned long long m,
                                      unsigned long long a, unsigned long long b) {
  unsigned long long ans = 0;
  while (true) {
    if (a >= m) {
      ans += n * (n - 1) / 2 * (a / m);
      a %= m;
    }
    if (b >= m) {
      ans += n * (b / m);
      b %= m;
    }

    unsigned long long y_max = a * n + b;
    if (y_max < m) break;
    n = (unsigned long long)(y_max / m);
    b = (unsigned long long)(y_max % m);
    std::swap(m, a);
  }
  return ans;
}

}  // namespace internal

}  // namespace atcoder

namespace atcoder {

namespace internal {

template <class T>
using is_signed_int128 = typename std::conditional<std::is_same<T, __int128_t>::value ||
                                                       std::is_same<T, __int128>::value,
                                                   std::true_type, std::false_type>::type;

template <class T>
using is_unsigned_int128 = typename std::conditional<std::is_same<T, __uint128_t>::value ||
                                                         std::is_same<T, unsigned __int128>::value,
                                                     std::true_type, std::false_type>::type;

template <class T>
using make_unsigned_int128 =
    typename std::conditional<std::is_same<T, __int128_t>::value, __uint128_t, unsigned __int128>;

template <class T>
using is_integral =
    typename std::conditional<std::is_integral<T>::value || is_signed_int128<T>::value ||
                                  is_unsigned_int128<T>::value,
                              std::true_type, std::false_type>::type;

template <class T>
using is_signed_int =
    typename std::conditional<(is_integral<T>::value && std::is_signed<T>::value) ||
                                  is_signed_int128<T>::value,
                              std::true_type, std::false_type>::type;

template <class T>
using is_unsigned_int =
    typename std::conditional<(is_integral<T>::value && std::is_unsigned<T>::value) ||
                                  is_unsigned_int128<T>::value,
                              std::true_type, std::false_type>::type;

template <class T>
using to_unsigned = typename std::conditional<
    is_signed_int128<T>::value, make_unsigned_int128<T>,
    typename std::conditional<std::is_signed<T>::value, std::make_unsigned<T>,
                              std::common_type<T>>::type>::type;

template <class T>
using is_signed_int_t = std::enable_if_t<is_signed_int<T>::value>;

template <class T>
using is_unsigned_int_t = std::enable_if_t<is_unsigned_int<T>::value>;

template <class T>
using to_unsigned_t = typename to_unsigned<T>::type;

}  // namespace internal

}  // namespace atcoder

namespace atcoder {

namespace internal {

struct modint_base {};
struct static_modint_base : modint_base {};

template <class T>
using is_modint = std::is_base_of<modint_base, T>;
template <class T>
using is_modint_t = std::enable_if_t<is_modint<T>::value>;

}  // namespace internal

template <int m, std::enable_if_t<(1 <= m)>* = nullptr>
struct static_modint : internal::static_modint_base {
  using mint = static_modint;

 public:
  static constexpr int mod() { return m; }
  static mint raw(int v) {
    mint x;
    x._v = v;
    return x;
  }

  static_modint() : _v(0) {}
  template <class T, internal::is_signed_int_t<T>* = nullptr>
  static_modint(T v) {
    long long x = (long long)(v % (long long)(umod()));
    if (x < 0) x += umod();
    _v = (unsigned int)(x);
  }
  template <class T, internal::is_unsigned_int_t<T>* = nullptr>
  static_modint(T v) {
    _v = (unsigned int)(v % umod());
  }

  unsigned int val() const { return _v; }

  mint& operator++() {
    _v++;
    if (_v == umod()) _v = 0;
    return *this;
  }
  mint& operator--() {
    if (_v == 0) _v = umod();
    _v--;
    return *this;
  }
  mint operator++(int) {
    mint result = *this;
    ++*this;
    return result;
  }
  mint operator--(int) {
    mint result = *this;
    --*this;
    return result;
  }

  mint& operator+=(const mint& rhs) {
    _v += rhs._v;
    if (_v >= umod()) _v -= umod();
    return *this;
  }
  mint& operator-=(const mint& rhs) {
    _v -= rhs._v;
    if (_v >= umod()) _v += umod();
    return *this;
  }
  mint& operator*=(const mint& rhs) {
    unsigned long long z = _v;
    z *= rhs._v;
    _v = (unsigned int)(z % umod());
    return *this;
  }
  mint& operator/=(const mint& rhs) { return *this = *this * rhs.inv(); }

  mint operator+() const { return *this; }
  mint operator-() const { return mint() - *this; }

  mint pow(long long n) const {
    assert(0 <= n);
    mint x = *this, r = 1;
    while (n) {
      if (n & 1) r *= x;
      x *= x;
      n >>= 1;
    }
    return r;
  }
  mint inv() const {
    if (prime) {
      assert(_v);
      return pow(umod() - 2);
    } else {
      auto eg = internal::inv_gcd(_v, m);
      assert(eg.first == 1);
      return eg.second;
    }
  }

  friend mint operator+(const mint& lhs, const mint& rhs) { return mint(lhs) += rhs; }
  friend mint operator-(const mint& lhs, const mint& rhs) { return mint(lhs) -= rhs; }
  friend mint operator*(const mint& lhs, const mint& rhs) { return mint(lhs) *= rhs; }
  friend mint operator/(const mint& lhs, const mint& rhs) { return mint(lhs) /= rhs; }
  friend bool operator==(const mint& lhs, const mint& rhs) { return lhs._v == rhs._v; }
  friend bool operator!=(const mint& lhs, const mint& rhs) { return lhs._v != rhs._v; }

 private:
  unsigned int _v;
  static constexpr unsigned int umod() { return m; }
  static constexpr bool prime = internal::is_prime<m>;
};

template <int id>
struct dynamic_modint : internal::modint_base {
  using mint = dynamic_modint;

 public:
  static int mod() { return (int)(bt.umod()); }
  static void set_mod(int m) {
    assert(1 <= m);
    bt = internal::barrett(m);
  }
  static mint raw(int v) {
    mint x;
    x._v = v;
    return x;
  }

  dynamic_modint() : _v(0) {}
  template <class T, internal::is_signed_int_t<T>* = nullptr>
  dynamic_modint(T v) {
    long long x = (long long)(v % (long long)(mod()));
    if (x < 0) x += mod();
    _v = (unsigned int)(x);
  }
  template <class T, internal::is_unsigned_int_t<T>* = nullptr>
  dynamic_modint(T v) {
    _v = (unsigned int)(v % mod());
  }

  unsigned int val() const { return _v; }

  mint& operator++() {
    _v++;
    if (_v == umod()) _v = 0;
    return *this;
  }
  mint& operator--() {
    if (_v == 0) _v = umod();
    _v--;
    return *this;
  }
  mint operator++(int) {
    mint result = *this;
    ++*this;
    return result;
  }
  mint operator--(int) {
    mint result = *this;
    --*this;
    return result;
  }

  mint& operator+=(const mint& rhs) {
    _v += rhs._v;
    if (_v >= umod()) _v -= umod();
    return *this;
  }
  mint& operator-=(const mint& rhs) {
    _v += mod() - rhs._v;
    if (_v >= umod()) _v -= umod();
    return *this;
  }
  mint& operator*=(const mint& rhs) {
    _v = bt.mul(_v, rhs._v);
    return *this;
  }
  mint& operator/=(const mint& rhs) { return *this = *this * rhs.inv(); }

  mint operator+() const { return *this; }
  mint operator-() const { return mint() - *this; }

  mint pow(long long n) const {
    assert(0 <= n);
    mint x = *this, r = 1;
    while (n) {
      if (n & 1) r *= x;
      x *= x;
      n >>= 1;
    }
    return r;
  }
  mint inv() const {
    auto eg = internal::inv_gcd(_v, mod());
    assert(eg.first == 1);
    return eg.second;
  }

  friend mint operator+(const mint& lhs, const mint& rhs) { return mint(lhs) += rhs; }
  friend mint operator-(const mint& lhs, const mint& rhs) { return mint(lhs) -= rhs; }
  friend mint operator*(const mint& lhs, const mint& rhs) { return mint(lhs) *= rhs; }
  friend mint operator/(const mint& lhs, const mint& rhs) { return mint(lhs) /= rhs; }
  friend bool operator==(const mint& lhs, const mint& rhs) { return lhs._v == rhs._v; }
  friend bool operator!=(const mint& lhs, const mint& rhs) { return lhs._v != rhs._v; }

 private:
  unsigned int _v;
  static internal::barrett bt;
  static unsigned int umod() { return bt.umod(); }
};
template <int id>
internal::barrett dynamic_modint<id>::bt(998244353);

using modint998244353 = static_modint<998244353>;
using modint1000000007 = static_modint<1000000007>;
using modint = dynamic_modint<-1>;

namespace internal {

template <class T>
using is_static_modint = std::is_base_of<internal::static_modint_base, T>;

template <class T>
using is_static_modint_t = std::enable_if_t<is_static_modint<T>::value>;

template <class>
struct is_dynamic_modint : public std::false_type {};
template <int id>
struct is_dynamic_modint<dynamic_modint<id>> : public std::true_type {};

template <class T>
using is_dynamic_modint_t = std::enable_if_t<is_dynamic_modint<T>::value>;

}  // namespace internal

}  // namespace atcoder

template <class T, class U = T>
bool chmin(T& x, U&& y) {
  return y < x && (x = std::forward<U>(y), true);
}

template <class T, class U = T>
bool chmax(T& x, U&& y) {
  return x < y && (x = std::forward<U>(y), true);
}

template <std::signed_integral T = int>
T inf() {
  T ret;
  std::memset(&ret, 0x3f, sizeof(ret));
  return ret;
}

template <std::floating_point T>
T inf() {
  return std::numeric_limits<T>::infinity();
}

template <class T>
concept Range = std::ranges::range<T> && !std::convertible_to<T, std::string_view>;

template <class T>
concept Tuple = std::__is_tuple_like<T>::value && !Range<T>;

namespace std {

istream& operator>>(istream& is, Range auto&& r) {
  for (auto&& e : r) {
    is >> e;
  }
  return is;
}

istream& operator>>(istream& is, Tuple auto&& t) {
  return apply([&](auto&... xs) -> istream& { return (is >> ... >> xs); }, t);
}

ostream& operator<<(ostream& os, Range auto&& r) {
  for (string_view sep = ""; auto&& e : r) {
    os << exchange(sep, " ") << e;
  }
  return os;
}

ostream& operator<<(ostream& os, Tuple auto&& t) {
  const auto f = [&](auto&... xs) -> ostream& {
    [[maybe_unused]] string_view sep = "";
    ((os << exchange(sep, " ") << xs), ...);
    return os;
  };
  return apply(f, t);
}

template <class T, atcoder::internal::is_modint_t<T>* = nullptr>
istream& operator>>(istream& is, T& x) {
  int v;
  is >> v;
  x = T::raw(v);
  return is;
}

template <class T, atcoder::internal::is_modint_t<T>* = nullptr>
ostream& operator<<(ostream& os, const T& x) {
  return os << x.val();
}

}  // namespace std

void scan(auto&&... xs) { std::cin >> std::tie(xs...); }
void print(auto&&... xs) { std::cout << std::tie(xs...) << '\n'; }

template <class F>
class fix {
 public:
  explicit fix(F f) : f_(std::move(f)) {}

  decltype(auto) operator()(auto&&... xs) const {
    return f_(std::ref(*this), std::forward<decltype(xs)>(xs)...);
  }

 private:
  F f_;
};

inline auto rep(int l, int r) { return std::views::iota(std::min(l, r), r); }
inline auto rep(int n) { return rep(0, n); }
inline auto rep1(int l, int r) { return rep(l, r + 1); }
inline auto rep1(int n) { return rep(1, n + 1); }

namespace ranges = std::ranges;
namespace views = std::views;

using i64 = std::int64_t;

#endif  // __INCLUDE_LEVEL__

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3796kb

input:

3 3
2 3 4
1 2 2

output:

40

result:

ok 1 number(s): "40"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3472kb

input:

13 96
56231 258305 150103 164646 232643 37457 239584 192517 167805 215281 159832 98020 141006
54 1 38 1 4 1 4 11 1 4 8 22 1

output:

745634757

result:

ok 1 number(s): "745634757"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3500kb

input:

14 86
205026 38691 58462 59767 205360 152715 7879 105238 33507 280429 54906 248241 102327 202931
1 49 1 1 5 12 1 5 9 18 1 1 3 32

output:

310231569

result:

ok 1 number(s): "310231569"

Test #4:

score: 0
Accepted
time: 1ms
memory: 3544kb

input:

14 85
82111 267744 229782 32542 260127 152775 1364 293699 23965 242667 264864 219673 189482 12945
1 5 1 1 2 1 38 14 1 3 4 1 21 53

output:

745175834

result:

ok 1 number(s): "745175834"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3772kb

input:

15 94
119505 80865 95965 30047 68261 120903 113180 192738 220899 279742 32609 275645 38640 213859 282516
1 1 8 15 1 3 1 38 6 1 23 57 1 5 79

output:

970187257

result:

ok 1 number(s): "970187257"

Test #6:

score: 0
Accepted
time: 1ms
memory: 3932kb

input:

200 91
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

602403195

result:

ok 1 number(s): "602403195"

Test #7:

score: 0
Accepted
time: 1ms
memory: 3828kb

input:

198 87
276373 259622 211541 127475 41483 45243 254828 92569 120672 280027 180073 248960 25052 110553 136460 102137 166179 165627 29260 33966 121236 34304 67399 250912 104260 114026 261774 159285 218100 110269 112808 224799 170009 150816 34232 290942 52872 176861 177679 36123 92008 39070 265659 25497...

output:

605480487

result:

ok 1 number(s): "605480487"

Test #8:

score: 0
Accepted
time: 0ms
memory: 3800kb

input:

198 234111
89712 73706 49851 196942 284937 252036 155683 1073 160017 24302 1736 21240 97245 116054 17583 258181 102901 54151 14410 251885 121370 135369 278761 195054 259593 292654 222660 193579 111738 119045 14083 214343 1531 298888 25144 88309 170939 62023 113276 169190 31076 65869 121858 158901 89...

output:

762578553

result:

ok 1 number(s): "762578553"

Test #9:

score: 0
Accepted
time: 0ms
memory: 3580kb

input:

199 51347
252659 63409 123416 60355 62358 56763 102379 176682 253785 179538 143669 238937 231314 96387 139004 89373 209360 270990 68703 136192 170160 114701 195611 137800 276330 225931 31636 164292 96730 265083 87466 101920 73722 215904 173793 12439 232863 199992 275055 35058 9090 19991 123969 16126...

output:

659774754

result:

ok 1 number(s): "659774754"

Test #10:

score: 0
Accepted
time: 0ms
memory: 4136kb

input:

199 193
281877 145142 61339 263979 290074 224117 116554 210487 236596 40332 279512 115797 80772 223156 234272 60309 65454 73398 68607 299733 212619 20774 93980 162827 88415 171874 237360 59866 1416 207446 222389 297320 133327 249794 74555 242580 176240 11249 259432 236537 235023 133620 223225 253266...

output:

777218291

result:

ok 1 number(s): "777218291"

Test #11:

score: 0
Accepted
time: 1ms
memory: 4044kb

input:

50 756
228896 201117 28445 23898 258744 221760 287052 284205 213698 193923 238353 273554 104230 45657 48068 142569 97940 136005 101800 70392 236209 269803 277695 4204 265615 186800 177441 269603 91437 121026 138283 187248 1793 144329 49812 214068 82633 271800 238111 206107 133808 131678 242602 12854...

output:

306757123

result:

ok 1 number(s): "306757123"

Test #12:

score: 0
Accepted
time: 1ms
memory: 3952kb

input:

49 896
222309 2984 141214 27320 70356 118537 243187 22055 16410 153276 110109 130296 100243 177715 278896 101771 175797 56180 43194 61709 83723 97026 66548 59377 290607 160007 243770 83478 162572 130113 295614 209317 270726 8240 217891 152168 149444 5953 150962 263112 251413 76008 262290 143396 9526...

output:

233615829

result:

ok 1 number(s): "233615829"

Test #13:

score: 0
Accepted
time: 1ms
memory: 3984kb

input:

50 825
22363 122426 144773 97133 182022 18905 64350 203411 57289 271378 115220 232152 146084 266835 71723 126783 140286 235142 161866 128092 4130 101780 26989 260105 223801 30789 204088 214173 30402 26543 11257 10749 45731 22534 152504 183529 117907 267801 293541 64520 46809 108156 9737 85517 51204 ...

output:

681195538

result:

ok 1 number(s): "681195538"

Test #14:

score: 0
Accepted
time: 6ms
memory: 16468kb

input:

98 8721
263042 289529 281955 89427 133885 50755 31062 103483 238269 127989 20094 247724 279099 181766 23924 80919 195591 295595 40269 71727 265824 170041 263460 68994 4726 179354 9077 116845 189303 44780 74054 155808 212015 91437 111256 209026 206198 44791 253213 163971 211258 144041 90842 205519 89...

output:

200292113

result:

ok 1 number(s): "200292113"

Test #15:

score: 0
Accepted
time: 8ms
memory: 16820kb

input:

98 8741
225872 288700 189511 196806 225120 274217 253157 146444 287797 3621 285106 38854 108280 188488 142516 160737 273780 129763 163930 201755 56670 119433 191038 73304 34842 202380 86150 173214 91738 293005 106191 56375 2859 83899 26631 18876 264951 41688 242722 124753 201474 112811 86496 215052 ...

output:

459746433

result:

ok 1 number(s): "459746433"

Test #16:

score: 0
Accepted
time: 593ms
memory: 872364kb

input:

199 277574
141689 225272 125107 151768 228208 186804 175264 16827 295516 209526 124641 261221 82656 270676 133451 143319 88685 240621 34249 278052 4419 78260 133343 92452 50129 49693 236168 166685 129020 32845 272172 230472 204327 48649 284108 275518 204892 54401 280521 115533 132840 270666 189150 8...

output:

240734076

result:

ok 1 number(s): "240734076"

Test #17:

score: 0
Accepted
time: 614ms
memory: 898880kb

input:

198 287619
284916 203413 139843 49889 185866 266946 266531 17129 197121 293732 257581 219723 150578 205283 6917 72781 23158 250507 204911 159775 293674 101678 191008 197221 76481 285483 164212 84643 288481 97161 273155 73778 182788 158493 175712 291729 109425 242114 18948 3201 119804 58576 35651 129...

output:

126120693

result:

ok 1 number(s): "126120693"

Test #18:

score: 0
Accepted
time: 1ms
memory: 3556kb

input:

200 6612
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

929053212

result:

ok 1 number(s): "929053212"

Test #19:

score: 0
Accepted
time: 1ms
memory: 3880kb

input:

199 84
243795 165034 5639 75935 238817 147929 226544 293534 240274 90288 252102 106448 113215 48270 194928 286677 82268 16947 230906 291653 199441 196874 79425 231429 152205 180248 119488 20333 288621 26675 282256 286762 167295 262598 281773 199863 12706 83475 253214 169666 220315 33554 67239 299655...

output:

575921893

result:

ok 1 number(s): "575921893"

Test #20:

score: 0
Accepted
time: 0ms
memory: 3876kb

input:

49 803
288550 178987 294656 45204 282141 282775 68955 162258 75410 110866 154922 81774 138136 225479 205313 201679 104440 180675 9993 27446 44142 126909 124465 283498 156316 140718 150698 11003 227369 285704 208605 118444 42585 180580 163296 105493 171367 58057 270297 171145 186544 188305 161117 198...

output:

571469511

result:

ok 1 number(s): "571469511"

Test #21:

score: 0
Accepted
time: 560ms
memory: 809232kb

input:

198 258829
72869 103820 171732 88624 103832 207683 215248 129683 13606 59143 163386 286685 233726 60517 221204 70924 54072 271213 150284 80276 183493 123387 166471 244404 42566 278360 89026 150459 169611 218017 160379 220794 45830 112855 144288 149952 141077 205393 139375 114955 116736 279440 210708...

output:

32373803

result:

ok 1 number(s): "32373803"

Extra Test:

score: 0
Extra Test Passed