QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#105940#6355. 5maspyTL 4880ms31732kbC++2321.3kb2023-05-16 06:28:092023-05-16 06:28:14

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-05-16 06:28:14]
  • 评测
  • 测评结果:TL
  • 用时:4880ms
  • 内存:31732kb
  • [2023-05-16 06:28:09]
  • 提交

answer

#line 1 "library/my_template.hpp"
#if defined(LOCAL)
#include <my_template_compiled.hpp>
#else
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")

#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using u32 = unsigned int;
using u64 = unsigned long long;
using i128 = __int128;

template <class T>
constexpr T infty = 0;
template <>
constexpr int infty<int> = 1'000'000'000;
template <>
constexpr ll infty<ll> = ll(infty<int>) * infty<int> * 2;
template <>
constexpr u32 infty<u32> = infty<int>;
template <>
constexpr u64 infty<u64> = infty<ll>;
template <>
constexpr i128 infty<i128> = i128(infty<ll>) * infty<ll>;
template <>
constexpr double infty<double> = infty<ll>;
template <>
constexpr long double infty<long double> = infty<ll>;

using pi = pair<ll, ll>;
using vi = vector<ll>;
template <class T>
using vc = vector<T>;
template <class T>
using vvc = vector<vc<T>>;
template <class T>
using vvvc = vector<vvc<T>>;
template <class T>
using vvvvc = vector<vvvc<T>>;
template <class T>
using vvvvvc = vector<vvvvc<T>>;
template <class T>
using pq = priority_queue<T>;
template <class T>
using pqg = priority_queue<T, vector<T>, greater<T>>;

#define vv(type, name, h, ...) \
  vector<vector<type>> name(h, vector<type>(__VA_ARGS__))
#define vvv(type, name, h, w, ...)   \
  vector<vector<vector<type>>> name( \
      h, vector<vector<type>>(w, vector<type>(__VA_ARGS__)))
#define vvvv(type, name, a, b, c, ...)       \
  vector<vector<vector<vector<type>>>> name( \
      a, vector<vector<vector<type>>>(       \
             b, vector<vector<type>>(c, vector<type>(__VA_ARGS__))))

// https://trap.jp/post/1224/
#define FOR1(a) for (ll _ = 0; _ < ll(a); ++_)
#define FOR2(i, a) for (ll i = 0; i < ll(a); ++i)
#define FOR3(i, a, b) for (ll i = a; i < ll(b); ++i)
#define FOR4(i, a, b, c) for (ll i = a; i < ll(b); i += (c))
#define FOR1_R(a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR2_R(i, a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR3_R(i, a, b) for (ll i = (b)-1; i >= ll(a); --i)
#define overload4(a, b, c, d, e, ...) e
#define overload3(a, b, c, d, ...) d
#define FOR(...) overload4(__VA_ARGS__, FOR4, FOR3, FOR2, FOR1)(__VA_ARGS__)
#define FOR_R(...) overload3(__VA_ARGS__, FOR3_R, FOR2_R, FOR1_R)(__VA_ARGS__)

#define FOR_subset(t, s) \
  for (ll t = (s); t >= 0; t = (t == 0 ? -1 : (t - 1) & (s)))
#define all(x) x.begin(), x.end()
#define len(x) ll(x.size())
#define elif else if

#define eb emplace_back
#define mp make_pair
#define mt make_tuple
#define fi first
#define se second

#define stoi stoll

int popcnt(int x) { return __builtin_popcount(x); }
int popcnt(u32 x) { return __builtin_popcount(x); }
int popcnt(ll x) { return __builtin_popcountll(x); }
int popcnt(u64 x) { return __builtin_popcountll(x); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 1, 2)
int topbit(int x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(u32 x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(ll x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
int topbit(u64 x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 0, 2)
int lowbit(int x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(u32 x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(ll x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }
int lowbit(u64 x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }

template <typename T, typename U>
T ceil(T x, U y) {
  return (x > 0 ? (x + y - 1) / y : x / y);
}
template <typename T, typename U>
T floor(T x, U y) {
  return (x > 0 ? x / y : (x - y + 1) / y);
}
template <typename T, typename U>
pair<T, T> divmod(T x, U y) {
  T q = floor(x, y);
  return {q, x - q * y};
}

template <typename T, typename U>
T SUM(const vector<U> &A) {
  T sum = 0;
  for (auto &&a: A) sum += a;
  return sum;
}

#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define LB(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define UB(c, x) distance((c).begin(), upper_bound(all(c), (x)))
#define UNIQUE(x) \
  sort(all(x)), x.erase(unique(all(x)), x.end()), x.shrink_to_fit()

template <typename T>
T POP(deque<T> &que) {
  T a = que.front();
  que.pop_front();
  return a;
}
template <typename T>
T POP(pq<T> &que) {
  T a = que.top();
  que.pop();
  return a;
}
template <typename T>
T POP(pqg<T> &que) {
  assert(!que.empty());
  T a = que.top();
  que.pop();
  return a;
}
template <typename T>
T POP(vc<T> &que) {
  assert(!que.empty());
  T a = que.back();
  que.pop_back();
  return a;
}

template <typename F>
ll binary_search(F check, ll ok, ll ng, bool check_ok = true) {
  if (check_ok) assert(check(ok));
  while (abs(ok - ng) > 1) {
    auto x = (ng + ok) / 2;
    tie(ok, ng) = (check(x) ? mp(x, ng) : mp(ok, x));
  }
  return ok;
}
template <typename F>
double binary_search_real(F check, double ok, double ng, int iter = 100) {
  FOR(iter) {
    double x = (ok + ng) / 2;
    tie(ok, ng) = (check(x) ? mp(x, ng) : mp(ok, x));
  }
  return (ok + ng) / 2;
}

template <class T, class S>
inline bool chmax(T &a, const S &b) {
  return (a < b ? a = b, 1 : 0);
}
template <class T, class S>
inline bool chmin(T &a, const S &b) {
  return (a > b ? a = b, 1 : 0);
}

// ? は -1
vc<int> s_to_vi(const string &S, char first_char) {
  vc<int> A(S.size());
  FOR(i, S.size()) { A[i] = (S[i] != '?' ? S[i] - first_char : -1); }
  return A;
}

template <typename T, typename U>
vector<T> cumsum(vector<U> &A, int off = 1) {
  int N = A.size();
  vector<T> B(N + 1);
  FOR(i, N) { B[i + 1] = B[i] + A[i]; }
  if (off == 0) B.erase(B.begin());
  return B;
}

// stable sort
template <typename T>
vector<int> argsort(const vector<T> &A) {
  vector<int> ids(len(A));
  iota(all(ids), 0);
  sort(all(ids),
       [&](int i, int j) { return (A[i] == A[j] ? i < j : A[i] < A[j]); });
  return ids;
}

// A[I[0]], A[I[1]], ...
template <typename T>
vc<T> rearrange(const vc<T> &A, const vc<int> &I) {
  vc<T> B(len(I));
  FOR(i, len(I)) B[i] = A[I[i]];
  return B;
}
#endif
#line 1 "library/other/io.hpp"
// based on yosupo's fastio
#include <unistd.h>

namespace fastio {
#define FASTIO
// クラスが read(), print() を持っているかを判定するメタ関数
struct has_write_impl {
  template <class T>
  static auto check(T &&x) -> decltype(x.write(), std::true_type{});

  template <class T>
  static auto check(...) -> std::false_type;
};

template <class T>
class has_write : public decltype(has_write_impl::check<T>(std::declval<T>())) {
};

struct has_read_impl {
  template <class T>
  static auto check(T &&x) -> decltype(x.read(), std::true_type{});

  template <class T>
  static auto check(...) -> std::false_type;
};

template <class T>
class has_read : public decltype(has_read_impl::check<T>(std::declval<T>())) {};

struct Scanner {
  FILE *fp;
  char line[(1 << 15) + 1];
  size_t st = 0, ed = 0;
  void reread() {
    memmove(line, line + st, ed - st);
    ed -= st;
    st = 0;
    ed += fread(line + ed, 1, (1 << 15) - ed, fp);
    line[ed] = '\0';
  }
  bool succ() {
    while (true) {
      if (st == ed) {
        reread();
        if (st == ed) return false;
      }
      while (st != ed && isspace(line[st])) st++;
      if (st != ed) break;
    }
    if (ed - st <= 50) {
      bool sep = false;
      for (size_t i = st; i < ed; i++) {
        if (isspace(line[i])) {
          sep = true;
          break;
        }
      }
      if (!sep) reread();
    }
    return true;
  }
  template <class T, enable_if_t<is_same<T, string>::value, int> = 0>
  bool read_single(T &ref) {
    if (!succ()) return false;
    while (true) {
      size_t sz = 0;
      while (st + sz < ed && !isspace(line[st + sz])) sz++;
      ref.append(line + st, sz);
      st += sz;
      if (!sz || st != ed) break;
      reread();
    }
    return true;
  }
  template <class T, enable_if_t<is_integral<T>::value, int> = 0>
  bool read_single(T &ref) {
    if (!succ()) return false;
    bool neg = false;
    if (line[st] == '-') {
      neg = true;
      st++;
    }
    ref = T(0);
    while (isdigit(line[st])) { ref = 10 * ref + (line[st++] & 0xf); }
    if (neg) ref = -ref;
    return true;
  }
  template <typename T,
            typename enable_if<has_read<T>::value>::type * = nullptr>
  inline bool read_single(T &x) {
    x.read();
    return true;
  }
  bool read_single(double &ref) {
    string s;
    if (!read_single(s)) return false;
    ref = std::stod(s);
    return true;
  }
  bool read_single(char &ref) {
    string s;
    if (!read_single(s) || s.size() != 1) return false;
    ref = s[0];
    return true;
  }
  template <class T>
  bool read_single(vector<T> &ref) {
    for (auto &d: ref) {
      if (!read_single(d)) return false;
    }
    return true;
  }
  template <class T, class U>
  bool read_single(pair<T, U> &p) {
    return (read_single(p.first) && read_single(p.second));
  }
  template <size_t N = 0, typename T>
  void read_single_tuple(T &t) {
    if constexpr (N < std::tuple_size<T>::value) {
      auto &x = std::get<N>(t);
      read_single(x);
      read_single_tuple<N + 1>(t);
    }
  }
  template <class... T>
  bool read_single(tuple<T...> &tpl) {
    read_single_tuple(tpl);
    return true;
  }
  void read() {}
  template <class H, class... T>
  void read(H &h, T &... t) {
    bool f = read_single(h);
    assert(f);
    read(t...);
  }
  Scanner(FILE *fp) : fp(fp) {}
};

struct Printer {
  Printer(FILE *_fp) : fp(_fp) {}
  ~Printer() { flush(); }

  static constexpr size_t SIZE = 1 << 15;
  FILE *fp;
  char line[SIZE], small[50];
  size_t pos = 0;
  void flush() {
    fwrite(line, 1, pos, fp);
    pos = 0;
  }
  void write(const char val) {
    if (pos == SIZE) flush();
    line[pos++] = val;
  }
  template <class T, enable_if_t<is_integral<T>::value, int> = 0>
  void write(T val) {
    if (pos > (1 << 15) - 50) flush();
    if (val == 0) {
      write('0');
      return;
    }
    if (val < 0) {
      write('-');
      val = -val; // todo min
    }
    size_t len = 0;
    while (val) {
      small[len++] = char(0x30 | (val % 10));
      val /= 10;
    }
    for (size_t i = 0; i < len; i++) { line[pos + i] = small[len - 1 - i]; }
    pos += len;
  }
  void write(const string s) {
    for (char c: s) write(c);
  }
  void write(const char *s) {
    size_t len = strlen(s);
    for (size_t i = 0; i < len; i++) write(s[i]);
  }
  void write(const double x) {
    ostringstream oss;
    oss << fixed << setprecision(15) << x;
    string s = oss.str();
    write(s);
  }
  void write(const long double x) {
    ostringstream oss;
    oss << fixed << setprecision(15) << x;
    string s = oss.str();
    write(s);
  }
  template <typename T,
            typename enable_if<has_write<T>::value>::type * = nullptr>
  inline void write(T x) {
    x.write();
  }
  template <class T>
  void write(const vector<T> val) {
    auto n = val.size();
    for (size_t i = 0; i < n; i++) {
      if (i) write(' ');
      write(val[i]);
    }
  }
  template <class T, class U>
  void write(const pair<T, U> val) {
    write(val.first);
    write(' ');
    write(val.second);
  }
  template <size_t N = 0, typename T>
  void write_tuple(const T t) {
    if constexpr (N < std::tuple_size<T>::value) {
      if constexpr (N > 0) { write(' '); }
      const auto x = std::get<N>(t);
      write(x);
      write_tuple<N + 1>(t);
    }
  }
  template <class... T>
  bool write(tuple<T...> tpl) {
    write_tuple(tpl);
    return true;
  }
  template <class T, size_t S>
  void write(const array<T, S> val) {
    auto n = val.size();
    for (size_t i = 0; i < n; i++) {
      if (i) write(' ');
      write(val[i]);
    }
  }
  void write(i128 val) {
    string s;
    bool negative = 0;
    if (val < 0) {
      negative = 1;
      val = -val;
    }
    while (val) {
      s += '0' + int(val % 10);
      val /= 10;
    }
    if (negative) s += "-";
    reverse(all(s));
    if (len(s) == 0) s = "0";
    write(s);
  }
};
Scanner scanner = Scanner(stdin);
Printer printer = Printer(stdout);
void flush() { printer.flush(); }
void print() { printer.write('\n'); }
template <class Head, class... Tail>
void print(Head &&head, Tail &&... tail) {
  printer.write(head);
  if (sizeof...(Tail)) printer.write(' ');
  print(forward<Tail>(tail)...);
}

void read() {}
template <class Head, class... Tail>
void read(Head &head, Tail &... tail) {
  scanner.read(head);
  read(tail...);
}
} // namespace fastio
using fastio::print;
using fastio::flush;
using fastio::read;

#define INT(...)   \
  int __VA_ARGS__; \
  read(__VA_ARGS__)
#define LL(...)   \
  ll __VA_ARGS__; \
  read(__VA_ARGS__)
#define STR(...)      \
  string __VA_ARGS__; \
  read(__VA_ARGS__)
#define CHAR(...)   \
  char __VA_ARGS__; \
  read(__VA_ARGS__)
#define DBL(...)      \
  double __VA_ARGS__; \
  read(__VA_ARGS__)

#define VEC(type, name, size) \
  vector<type> name(size);    \
  read(name)
#define VV(type, name, h, w)                     \
  vector<vector<type>> name(h, vector<type>(w)); \
  read(name)

void YES(bool t = 1) { print(t ? "YES" : "NO"); }
void NO(bool t = 1) { YES(!t); }
void Yes(bool t = 1) { print(t ? "Yes" : "No"); }
void No(bool t = 1) { Yes(!t); }
void yes(bool t = 1) { print(t ? "yes" : "no"); }
void no(bool t = 1) { yes(!t); }
#line 3 "main.cpp"

#line 2 "library/ds/segtree/lazy_segtree.hpp"

template <typename ActedMonoid>
struct Lazy_SegTree {
  using AM = ActedMonoid;
  using MX = typename AM::Monoid_X;
  using MA = typename AM::Monoid_A;
  using X = typename MX::value_type;
  using A = typename MA::value_type;
  int n, log, size;
  vc<X> dat;
  vc<A> laz;

  Lazy_SegTree() {}
  Lazy_SegTree(int n) { build(n); }
  template <typename F>
  Lazy_SegTree(int n, F f) {
    build(n, f);
  }
  Lazy_SegTree(const vc<X>& v) { build(v); }

  void build(int m) {
    build(m, [](int i) -> X { return MX::unit(); });
  }
  void build(const vc<X>& v) {
    build(len(v), [&](int i) -> X { return v[i]; });
  }
  template <typename F>
  void build(int m, F f) {
    n = m, log = 1;
    while ((1 << log) < n) ++log;
    size = 1 << log;
    dat.assign(size << 1, MX::unit());
    laz.assign(size, MA::unit());
    FOR(i, n) dat[size + i] = f(i);
    FOR_R(i, 1, size) update(i);
  }

  void update(int k) { dat[k] = MX::op(dat[2 * k], dat[2 * k + 1]); }
  void set(int p, X x) {
    assert(0 <= p && p < n);
    p += size;
    for (int i = log; i >= 1; i--) push(p >> i);
    dat[p] = x;
    for (int i = 1; i <= log; i++) update(p >> i);
  }

  X get(int p) {
    assert(0 <= p && p < n);
    p += size;
    for (int i = log; i >= 1; i--) push(p >> i);
    return dat[p];
  }

  vc<X> get_all() {
    FOR(k, 1, size) { push(k); }
    return {dat.begin() + size, dat.begin() + size + n};
  }

  X prod(int l, int r) {
    assert(0 <= l && l <= r && r <= n);
    if (l == r) return MX::unit();
    l += size, r += size;
    for (int i = log; i >= 1; i--) {
      if (((l >> i) << i) != l) push(l >> i);
      if (((r >> i) << i) != r) push((r - 1) >> i);
    }
    X xl = MX::unit(), xr = MX::unit();
    while (l < r) {
      if (l & 1) xl = MX::op(xl, dat[l++]);
      if (r & 1) xr = MX::op(dat[--r], xr);
      l >>= 1, r >>= 1;
    }
    return MX::op(xl, xr);
  }

  X prod_all() { return dat[1]; }

  void apply(int l, int r, A a) {
    assert(0 <= l && l <= r && r <= n);
    if (l == r) return;
    l += size, r += size;
    for (int i = log; i >= 1; i--) {
      if (((l >> i) << i) != l) push(l >> i);
      if (((r >> i) << i) != r) push((r - 1) >> i);
    }
    int l2 = l, r2 = r;
    while (l < r) {
      if (l & 1) apply_at(l++, a);
      if (r & 1) apply_at(--r, a);
      l >>= 1, r >>= 1;
    }
    l = l2, r = r2;
    for (int i = 1; i <= log; i++) {
      if (((l >> i) << i) != l) update(l >> i);
      if (((r >> i) << i) != r) update((r - 1) >> i);
    }
  }

  template <typename F>
  int max_right(const F check, int l) {
    assert(0 <= l && l <= n);
    assert(check(MX::unit()));
    if (l == n) return n;
    l += size;
    for (int i = log; i >= 1; i--) push(l >> i);
    X sm = MX::unit();
    do {
      while (l % 2 == 0) l >>= 1;
      if (!check(MX::op(sm, dat[l]))) {
        while (l < size) {
          push(l);
          l = (2 * l);
          if (check(MX::op(sm, dat[l]))) { sm = MX::op(sm, dat[l++]); }
        }
        return l - size;
      }
      sm = MX::op(sm, dat[l++]);
    } while ((l & -l) != l);
    return n;
  }

  template <typename F>
  int min_left(const F check, int r) {
    assert(0 <= r && r <= n);
    assert(check(MX::unit()));
    if (r == 0) return 0;
    r += size;
    for (int i = log; i >= 1; i--) push((r - 1) >> i);
    X sm = MX::unit();
    do {
      r--;
      while (r > 1 && (r % 2)) r >>= 1;
      if (!check(MX::op(dat[r], sm))) {
        while (r < size) {
          push(r);
          r = (2 * r + 1);
          if (check(MX::op(dat[r], sm))) { sm = MX::op(dat[r--], sm); }
        }
        return r + 1 - size;
      }
      sm = MX::op(dat[r], sm);
    } while ((r & -r) != r);
    return 0;
  }

private:
  void apply_at(int k, A a) {
    ll sz = 1 << (log - topbit(k));
    dat[k] = AM::act(dat[k], a, sz);
    if (k < size) laz[k] = MA::op(laz[k], a);
  }
  void push(int k) {
    if (laz[k] == MA::unit()) return;
    apply_at(2 * k, laz[k]), apply_at(2 * k + 1, laz[k]);
    laz[k] = MA::unit();
  }
};
#line 2 "library/alg/monoid/minmincnt.hpp"

// 最小値、最小値の個数
template <typename E>
struct Monoid_MinMincnt {
  using value_type = pair<E, E>;
  using X = value_type;
  static X op(X x, X y) {
    auto [xmin, xmincnt] = x;
    auto [ymin, ymincnt] = y;
    if (xmin > ymin) return y;
    if (xmin < ymin) return x;
    return {xmin, xmincnt + ymincnt};
  }
  static constexpr X unit() { return {infty<E>, 0}; }
  static constexpr bool commute = true;
};
#line 2 "library/alg/monoid/add.hpp"

template <typename X>
struct Monoid_Add {
  using value_type = X;
  static constexpr X op(const X &x, const X &y) noexcept { return x + y; }
  static constexpr X inverse(const X &x) noexcept { return -x; }
  static constexpr X power(const X &x, ll n) noexcept { return X(n) * x; }
  static constexpr X unit() { return X(0); }
  static constexpr bool commute = true;
};
#line 3 "library/alg/acted_monoid/minmincnt_add.hpp"

template <typename E>
struct ActedMonoid_MinMincnt_Add {
  using Monoid_X = Monoid_MinMincnt<E>;
  using Monoid_A = Monoid_Add<E>;
  using X = typename Monoid_X::value_type;
  using A = typename Monoid_A::value_type;
  static constexpr X act(const X &x, const A &a, const ll &size) {
    auto [xmin, xmincnt] = x;
    if (xmin == infty<E>) return x;
    return {xmin + a, xmincnt};
  }
};
#line 3 "library/other/rectangle_union.hpp"

template <typename XY = int>
struct Rectangle_Union {
  using RECT = tuple<XY, XY, XY, XY>;
  vc<RECT> rectangles;
  vc<XY> X, Y;

  void add_rect(XY xl, XY xr, XY yl, XY yr) {
    assert(xl < xr && yl < yr);
    X.eb(xl), X.eb(xr), Y.eb(yl), Y.eb(yr);
    rectangles.eb(xl, xr, yl, yr);
  }

  template <typename ANS_TYPE = ll>
  ANS_TYPE calc() {
    int N = len(X);
    vc<int> ord_x = argsort(X);
    vc<int> ord_y = argsort(Y);
    vc<int> rk_y(N);
    FOR(i, N) rk_y[ord_y[i]] = i;
    X = rearrange(X, ord_x);
    Y = rearrange(Y, ord_y);

    using AM = ActedMonoid_MinMincnt_Add<XY>;
    Lazy_SegTree<AM> seg(N - 1, [&](int i) -> pair<XY, XY> {
      return {0, Y[i + 1] - Y[i]};
    });

    ANS_TYPE ANS = 0;
    XY total = Y.back() - Y[0];
    FOR(i, N - 1) {
      int k = ord_x[i] / 2;
      int a = (ord_x[i] & 1 ? -1 : 1);
      seg.apply(rk_y[2 * k], rk_y[2 * k + 1], a);
      auto [min, mincnt] = seg.prod_all();
      ANS_TYPE dy = total - (min == 0 ? mincnt : 0);
      ANS_TYPE dx = X[i + 1] - X[i];
      ANS += dx * dy;
    }
    return ANS;
  }
};
#line 5 "main.cpp"

void solve() {
  LL(N, S);
  VEC(int, A, N);
  for (auto&& x: A) --x;
  vc<int> CNT(S + 1);

  S = 0;
  for (auto&& x: A)
    if (x >= 0) CNT[x]++, S += x;

  ll n = CNT[0];

  // 個数は [x, x+n] の形の区間の union
  // x を入れていく
  using T = vc<int>;

  auto reduce = [&](T& X) -> T {
    sort(all(X));
    T Y;
    for (auto&& x: X) {
      while (len(Y) >= 2 && x <= n + Y[len(Y) - 2]) { Y.pop_back(); }
      Y.eb(x);
    }
    return Y;
  };

  vc<T> dp(S + 1);
  dp[0].eb(0);
  FOR(x, 1, len(CNT)) {
    int t = CNT[x];
    vc<int> F;
    while (t) {
      F.eb(ceil(t, 2));
      t /= 2;
    }
    for (auto&& cnt: F) {
      ll s = x * cnt;
      FOR_R(i, S + 1) {
        if (dp[i].empty()) continue;
        for (auto&& k: dp[i]) dp[i + s].eb(k + cnt);
        dp[i + s] = reduce(dp[i + s]);
      }
    }
  }

  int z = 0;
  for (auto&& x: A)
    if (x == -1) ++z;

  Rectangle_Union<int> RU;
  FOR(s, S + 1) {
    vc<pair<int, int>> LR;
    for (auto&& x: dp[s]) {
      if (len(LR) && LR.back().se >= x) {
        LR.back().se = x + n + 1;
        continue;
      }
      LR.eb(x, x + n + 1);
    }
    for (auto&& [L, R]: LR) { RU.add_rect(s - z, s + 1, s + L, s + R); }
  }

  print(RU.calc());
}

signed main() {
  solve();
  return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 2ms
memory: 3416kb

input:

7 9
0 0 0 1 1 2 5

output:

42

result:

ok 1 number(s): "42"

Test #2:

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

input:

10 33
9 9 8 1 1 1 1 1 1 1

output:

48

result:

ok 1 number(s): "48"

Test #3:

score: 0
Accepted
time: 2ms
memory: 3432kb

input:

10 14
2 4 4 1 0 1 0 1 0 1

output:

81

result:

ok 1 number(s): "81"

Test #4:

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

input:

10 14
3 5 3 0 1 0 1 0 1 0

output:

87

result:

ok 1 number(s): "87"

Test #5:

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

input:

40 50
1 1 1 1 3 3 0 3 1 1 0 0 2 1 0 0 1 0 0 2 7 1 2 1 3 0 2 2 3 1 1 0 0 2 0 1 1 0 1 1

output:

1067

result:

ok 1 number(s): "1067"

Test #6:

score: 0
Accepted
time: 2ms
memory: 3428kb

input:

1200 1000
1 1 2 3 0 1 0 0 1 1 0 2 3 0 1 2 0 0 1 0 4 1 1 2 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 2 0 4 0 3 1 6 0 1 1 0 0 0 0 4 0 0 0 0 0 0 1 0 0 1 7 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 3 0 1 0 1 0 0 1 1 2 2 0 1 1 0 0 1 4 1 2 0 0 0 3 0 0 2 1 0 2 0 0 0 1 1 0 0 2 0 0 0 0 1 1 0 1 0 1 6 1 1 ...

output:

737899

result:

ok 1 number(s): "737899"

Test #7:

score: 0
Accepted
time: 12ms
memory: 3864kb

input:

12000 10000
1 1 0 0 1 0 2 1 3 0 0 1 0 3 1 1 0 1 1 1 1 1 2 1 0 1 2 1 0 1 2 0 5 1 1 1 0 2 0 1 0 1 0 3 2 0 1 0 1 1 2 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 4 0 1 3 1 0 0 1 0 1 2 1 0 0 1 1 0 2 1 1 0 1 0 1 0 0 2 1 1 3 0 1 1 1 0 0 0 1 1 1 0 3 0 0 0 2 0 0 0 1 0 2 0 1 1 1 0 0 1 0 1 0 2 0 0 0 0 0 0 0 1 0 1 0 0 4 1 ...

output:

73685347

result:

ok 1 number(s): "73685347"

Test #8:

score: 0
Accepted
time: 54ms
memory: 5296kb

input:

36000 30000
0 3 4 1 2 1 1 0 0 1 1 0 1 0 2 1 0 0 0 0 2 1 0 2 0 0 0 0 0 1 1 4 1 4 0 0 2 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 3 1 1 1 0 0 0 0 0 0 1 2 0 2 3 0 0 0 0 3 1 0 0 0 1 0 1 2 0 0 2 0 1 0 0 2 1 1 0 3 1 6 0 0 1 1 2 0 1 2 0 0 1 0 1 1 0 0 1 0 0 0 1 0 2 0 1 1 1 0 0 5 2 0 5 1 0 0 0 0 1 1 1 8 0 1 1 0 1 ...

output:

658813003

result:

ok 1 number(s): "658813003"

Test #9:

score: 0
Accepted
time: 688ms
memory: 18564kb

input:

200000 200000
0 1 1 1 1 1 0 1 0 3 1 0 0 1 1 0 1 1 1 2 3 0 1 0 1 0 2 5 0 1 1 4 1 1 0 0 0 0 0 0 2 1 0 0 2 1 1 2 0 3 0 1 3 0 1 1 1 0 1 0 1 2 0 1 1 0 0 2 2 1 0 1 1 2 4 1 0 2 0 5 1 2 0 0 1 0 2 3 1 0 1 1 1 1 0 0 0 5 1 0 0 1 2 1 1 0 0 0 1 0 0 1 2 1 0 0 2 1 2 3 0 0 3 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 ...

output:

23477878007

result:

ok 1 number(s): "23477878007"

Test #10:

score: 0
Accepted
time: 1067ms
memory: 20364kb

input:

140000 200000
0 1 3 0 0 0 0 0 1 1 1 1 4 1 1 8 1 1 0 3 0 0 0 1 5 0 1 1 0 4 1 0 2 1 0 0 1 1 1 0 2 4 0 2 0 3 0 2 1 2 1 2 1 1 1 2 1 0 0 1 1 1 1 0 1 0 9 1 5 1 1 4 0 1 1 4 1 1 1 1 3 1 1 1 1 4 1 1 0 3 1 0 1 3 1 1 3 1 1 3 4 1 1 0 0 1 1 0 1 4 1 1 1 1 0 1 1 0 0 2 0 6 5 1 1 3 2 4 0 1 4 1 1 1 1 2 0 0 2 1 5 1 1 ...

output:

15405328745

result:

ok 1 number(s): "15405328745"

Test #11:

score: 0
Accepted
time: 1775ms
memory: 22684kb

input:

90000 200000
3 1 1 1 4 5 1 1 1 1 10 1 3 2 1 1 7 8 1 1 8 5 1 1 6 1 1 1 0 1 4 5 0 5 1 21 1 4 0 2 4 3 1 6 7 3 1 1 1 0 1 2 5 1 1 1 1 2 0 8 0 1 2 4 0 0 11 1 2 2 2 1 28 0 1 1 2 1 2 1 11 1 5 9 1 1 1 1 1 2 1 1 1 1 2 1 0 4 1 1 2 1 1 1 4 1 5 1 1 5 4 1 5 1 0 1 1 1 1 0 1 2 4 1 1 1 1 1 1 1 1 1 2 1 1 3 1 2 1 1 0 ...

output:

9895248405

result:

ok 1 number(s): "9895248405"

Test #12:

score: 0
Accepted
time: 2098ms
memory: 23380kb

input:

80000 200000
1 5 1 1 1 3 1 0 3 11 1 5 1 2 1 21 4 13 1 1 1 1 0 1 1 1 2 1 13 2 1 4 5 0 1 1 6 3 1 1 1 1 1 1 8 1 1 6 3 1 1 1 1 8 1 2 0 1 1 1 1 1 1 1 17 1 1 1 6 1 1 1 11 1 15 5 1 1 1 1 1 2 8 0 0 1 1 2 3 14 1 1 3 18 1 1 1 3 1 1 1 1 1 1 4 0 9 1 0 1 1 1 0 4 1 2 1 1 3 2 3 21 3 2 11 1 1 0 1 29 1 1 2 1 5 6 1 5...

output:

8980751457

result:

ok 1 number(s): "8980751457"

Test #13:

score: 0
Accepted
time: 2518ms
memory: 29048kb

input:

70000 200000
4 0 0 2 5 1 0 1 4 1 1 1 1 3 12 1 1 1 0 1 1 6 5 1 1 1 1 1 0 1 1 1 16 1 1 1 1 1 10 1 2 1 1 0 1 7 1 0 3 3 1 1 1 1 2 2 1 1 7 1 1 2 1 1 1 1 14 1 6 1 1 12 1 1 1 1 1 1 1 7 1 1 1 7 1 1 1 1 2 1 0 1 13 1 0 1 1 1 3 1 3 1 0 1 4 1 1 1 1 3 1 13 0 1 1 7 0 0 1 1 12 3 1 1 3 1 1 1 6 1 1 1 1 1 1 1 1 10 1 ...

output:

8196878191

result:

ok 1 number(s): "8196878191"

Test #14:

score: 0
Accepted
time: 3052ms
memory: 29836kb

input:

60000 200000
1 1 1 1 25 1 4 1 1 1 1 1 10 2 12 1 1 1 1 1 12 7 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 2 1 12 1 1 1 1 0 1 1 3 1 6 1 6 1 1 2 29 1 0 1 13 3 1 1 0 1 1 5 3 1 1 1 1 1 1 7 1 0 9 1 7 1 1 12 4 1 1 1 23 1 4 24 1 36 1 23 1 18 29 1 1 11 1 1 1 1 1 1 0 1 1 2 13 1 32 1 3 1 0 1 1 1 1 5 23 9 1 1 1 8 12 14 1 1 1...

output:

7466221263

result:

ok 1 number(s): "7466221263"

Test #15:

score: 0
Accepted
time: 3992ms
memory: 30620kb

input:

50000 200000
1 1 87 20 1 1 1 1 1 1 1 1 41 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 5 1 1 1 1 1 1 1 17 1 1 1 1 1 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 17 18 1 1 1 1 1 13 1 1 1 1 1 32 1 1 7 1 10 1 1 1 1 14 20 1 1 1 1 1 3 23 27 1 1 1 9 1 1 1 1 4 8 1 12 1 1 1 53 1 1 1 1 26 1 1 1 1 1 1 1 1 1 1 1...

output:

6870036861

result:

ok 1 number(s): "6870036861"

Test #16:

score: 0
Accepted
time: 4843ms
memory: 31180kb

input:

45000 200000
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 11 1 1 1 1 1 1 1 1 1 1 1 26 1 1 10 1 1 1 1 1 1 1 1 1 1 1 50 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 26 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 25 1 1 1 1...

output:

6615361583

result:

ok 1 number(s): "6615361583"

Test #17:

score: 0
Accepted
time: 4822ms
memory: 31288kb

input:

44000 200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 1 16 1 1 1 1 104 1 1 1 1 1 1 50 23 1 1 1 1 1 1 23 1 18 1 1 1 1 1 1 1 28 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 1 1 49 1 1 1 1 1 1 1 1 1 1 1 1 53 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 76 1 1 1 1 1 1 1 1 1 149 1 1 1 1 1 0 1 1...

output:

6575348967

result:

ok 1 number(s): "6575348967"

Test #18:

score: 0
Accepted
time: 4754ms
memory: 31308kb

input:

43000 200000
1 53 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 1 1 1 1 104 1 1 1 1 1 1 1 1 20 1 1 1 1 1 1 1 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 65 1 1 1 1 138 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 15 62 1 1 1 1...

output:

6527389951

result:

ok 1 number(s): "6527389951"

Test #19:

score: 0
Accepted
time: 4492ms
memory: 31412kb

input:

42000 200000
1 1 1 1 1 1 1 1 23 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 239 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 2 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 10 1 58 1 ...

output:

6480594507

result:

ok 1 number(s): "6480594507"

Test #20:

score: 0
Accepted
time: 3169ms
memory: 31592kb

input:

41000 200000
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 43 1 1 1 1 1 1 1 1 1 85 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 58 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 152 1 1 1 1 1 1 1 1 1 1 1 ...

output:

6440851777

result:

ok 1 number(s): "6440851777"

Test #21:

score: 0
Accepted
time: 2749ms
memory: 31524kb

input:

40800 200000
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 398 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 18 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:

6433344943

result:

ok 1 number(s): "6433344943"

Test #22:

score: 0
Accepted
time: 1955ms
memory: 31644kb

input:

40500 200000
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 151 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:

6419515129

result:

ok 1 number(s): "6419515129"

Test #23:

score: 0
Accepted
time: 1150ms
memory: 31664kb

input:

40300 200000
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:

6413828837

result:

ok 1 number(s): "6413828837"

Test #24:

score: 0
Accepted
time: 886ms
memory: 31584kb

input:

40200 200000
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:

6406509705

result:

ok 1 number(s): "6406509705"

Test #25:

score: 0
Accepted
time: 501ms
memory: 31732kb

input:

40100 200000
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 353 1 1 1 1 1 1 1 1...

output:

6394891119

result:

ok 1 number(s): "6394891119"

Test #26:

score: 0
Accepted
time: 437ms
memory: 31580kb

input:

40080 200000
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:

6353150219

result:

ok 1 number(s): "6353150219"

Test #27:

score: 0
Accepted
time: 350ms
memory: 31536kb

input:

40060 200000
1 1 1 1 1 1 1 1 1 1 1992 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:

6324862643

result:

ok 1 number(s): "6324862643"

Test #28:

score: 0
Accepted
time: 220ms
memory: 31112kb

input:

40030 200000
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:

6148794579

result:

ok 1 number(s): "6148794579"

Test #29:

score: 0
Accepted
time: 138ms
memory: 23400kb

input:

40020 200000
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:

4915254493

result:

ok 1 number(s): "4915254493"

Test #30:

score: 0
Accepted
time: 5ms
memory: 8104kb

input:

40010 200000
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:

40961024

result:

ok 1 number(s): "40961024"

Test #31:

score: 0
Accepted
time: 4ms
memory: 7772kb

input:

40005 200000
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:

1280032

result:

ok 1 number(s): "1280032"

Test #32:

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

input:

40003 200000
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:

320008

result:

ok 1 number(s): "320008"

Test #33:

score: 0
Accepted
time: 3ms
memory: 7808kb

input:

40002 200000
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:

160004

result:

ok 1 number(s): "160004"

Test #34:

score: 0
Accepted
time: 7ms
memory: 7728kb

input:

40001 200000
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:

80002

result:

ok 1 number(s): "80002"

Test #35:

score: 0
Accepted
time: 987ms
memory: 19960kb

input:

150000 200000
4 1 2 1 3 1 1 1 0 1 2 1 1 3 1 1 1 1 0 4 1 1 3 1 1 3 1 0 2 1 0 1 0 0 1 0 3 6 1 0 3 0 1 3 2 5 0 0 0 1 3 0 2 1 5 0 1 1 1 2 1 1 0 1 1 1 0 0 0 3 1 1 6 3 0 0 3 1 0 3 1 5 0 1 2 1 5 1 3 3 2 0 0 1 2 5 0 0 0 1 1 1 1 0 3 4 2 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 3 1 1 1 1 2 0 1 1 1 0 1 1 1 0 1 5 1 2 ...

output:

16598916037

result:

ok 1 number(s): "16598916037"

Test #36:

score: 0
Accepted
time: 868ms
memory: 19588kb

input:

160000 200000
2 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 4 0 1 0 3 0 0 2 1 2 1 4 1 1 1 1 2 1 1 6 1 1 3 0 0 2 0 0 1 0 0 0 1 1 1 1 0 8 4 0 4 1 1 1 0 0 1 1 1 1 1 1 3 1 5 0 5 4 1 1 0 1 2 0 0 1 0 4 4 3 1 1 0 1 0 1 1 0 2 1 3 1 4 5 0 0 0 0 1 1 1 3 1 1 0 3 1 3 0 1 1 2 0 3 1 2 5 2 3 1 3 0 0 1 0 0 1 4 1 0 1 4 3 0 1 1 0 ...

output:

17975355171

result:

ok 1 number(s): "17975355171"

Test #37:

score: 0
Accepted
time: 811ms
memory: 19252kb

input:

170000 200000
5 1 0 0 7 3 1 0 1 0 0 1 1 2 5 0 0 0 1 1 0 2 1 0 1 0 1 4 0 1 2 2 0 1 1 1 1 3 0 2 3 0 2 1 1 1 1 1 0 1 0 1 0 3 1 1 0 0 1 0 1 1 1 0 0 3 1 1 0 2 1 0 0 0 0 0 2 1 0 1 1 0 1 1 1 2 0 1 1 1 0 1 0 0 6 1 3 1 8 1 0 0 3 0 1 3 0 0 3 1 1 1 0 1 0 1 1 1 1 1 0 0 2 0 0 1 1 1 4 0 0 1 0 0 0 0 0 1 0 1 1 4 0 ...

output:

19302687621

result:

ok 1 number(s): "19302687621"

Test #38:

score: 0
Accepted
time: 752ms
memory: 19100kb

input:

180000 200000
1 1 0 1 1 1 0 4 2 0 1 1 1 5 0 0 0 1 0 3 1 1 1 14 0 0 1 0 0 0 0 0 4 0 1 3 2 2 3 0 1 0 1 2 4 4 6 0 1 0 1 1 0 2 0 0 3 1 7 3 1 1 2 1 0 1 0 0 1 1 1 0 2 1 0 1 1 1 1 1 2 0 1 2 1 1 0 1 1 1 2 1 1 1 0 1 1 2 1 1 0 1 1 0 1 0 1 1 0 1 2 2 1 0 1 1 1 0 0 2 0 1 0 1 0 6 0 1 2 0 0 2 1 0 0 3 1 1 1 0 7 1 1...

output:

20620443627

result:

ok 1 number(s): "20620443627"

Test #39:

score: 0
Accepted
time: 708ms
memory: 18796kb

input:

190000 200000
0 1 2 0 0 1 1 0 1 0 0 0 0 3 0 5 0 0 1 2 1 0 1 0 0 2 0 1 1 0 0 1 1 6 2 2 1 0 2 1 3 1 1 1 1 0 1 1 2 0 1 0 0 1 1 0 1 2 1 0 0 1 1 0 2 0 1 2 1 0 1 0 1 1 1 0 0 1 1 0 2 0 1 0 0 1 1 0 0 0 0 1 0 2 0 0 2 1 0 5 0 3 0 0 1 2 0 0 1 2 0 1 0 2 3 1 1 0 1 3 1 1 1 0 0 0 0 5 0 2 1 0 1 0 1 1 0 2 5 1 0 3 4 ...

output:

22057165057

result:

ok 1 number(s): "22057165057"

Test #40:

score: 0
Accepted
time: 667ms
memory: 18504kb

input:

199000 200000
1 0 0 1 1 0 1 0 1 4 1 1 0 0 0 0 0 1 0 0 7 0 3 1 3 0 0 1 1 3 0 4 1 1 0 1 2 1 1 4 2 5 1 0 0 0 0 0 2 5 2 0 1 1 1 1 0 1 0 2 1 1 1 3 1 0 0 1 1 1 1 1 0 2 2 0 1 1 1 0 2 1 1 1 1 0 2 2 1 0 0 0 0 0 5 1 0 0 0 1 0 0 1 0 0 1 0 0 1 2 1 1 1 0 0 1 0 1 1 0 3 1 1 1 1 0 1 0 0 3 4 0 0 0 1 0 0 2 2 0 1 2 2 ...

output:

23338533811

result:

ok 1 number(s): "23338533811"

Test #41:

score: 0
Accepted
time: 699ms
memory: 18600kb

input:

198000 200000
1 1 0 1 2 1 4 0 0 0 5 0 0 2 0 1 0 1 0 1 2 1 3 2 1 3 2 0 2 0 0 1 1 1 0 1 2 1 0 1 0 0 1 1 2 3 1 0 1 1 0 6 3 0 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 2 1 0 1 0 2 5 1 1 0 1 1 1 0 0 1 2 1 1 0 0 0 0 2 1 3 0 1 0 4 2 0 0 2 2 2 1 1 0 0 2 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 2 ...

output:

23205443235

result:

ok 1 number(s): "23205443235"

Test #42:

score: 0
Accepted
time: 718ms
memory: 18624kb

input:

197000 200000
1 0 1 1 0 0 3 0 0 1 2 1 0 0 1 1 1 1 1 1 1 3 2 1 1 1 1 0 0 0 1 4 1 1 3 1 0 3 1 1 2 0 0 1 0 0 0 0 1 0 0 1 0 1 0 2 3 0 1 1 0 2 1 2 1 1 1 1 1 0 1 0 1 4 1 0 1 1 1 0 1 0 1 0 1 2 1 1 0 1 1 2 1 0 1 1 0 1 0 2 1 0 1 0 2 1 0 1 0 0 1 0 0 2 0 0 3 1 0 0 1 6 1 0 5 0 0 4 0 0 1 2 3 0 0 0 2 1 1 0 0 0 0 ...

output:

23008514485

result:

ok 1 number(s): "23008514485"

Test #43:

score: 0
Accepted
time: 685ms
memory: 18620kb

input:

196000 200000
2 1 1 1 0 2 1 2 0 1 2 0 3 1 0 0 0 1 2 1 0 1 0 1 0 0 0 5 0 1 3 0 5 1 1 3 5 1 1 1 0 0 0 4 0 0 1 1 4 1 1 1 0 0 0 1 5 1 0 0 1 5 1 4 0 2 2 3 1 0 0 0 2 1 4 0 1 3 0 1 1 2 0 0 0 2 0 2 1 0 3 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 4 1 0 0 0 1 0 0 0 0 4 1 0 1 1 0 1 1 1 1 0 1 0 1 3 0 0 0 0 1 0 1 2 1 0 ...

output:

22830578635

result:

ok 1 number(s): "22830578635"

Test #44:

score: 0
Accepted
time: 693ms
memory: 18672kb

input:

195000 200000
0 1 1 1 0 0 0 2 0 1 0 0 0 3 0 3 1 0 1 0 0 1 4 0 0 0 1 1 5 0 0 3 2 1 1 1 2 0 1 1 0 0 3 0 1 1 0 1 0 1 0 4 1 1 1 0 1 1 1 1 1 0 1 2 0 0 0 1 0 4 1 2 0 1 0 0 1 4 1 0 1 2 1 1 2 1 1 0 1 1 4 1 0 1 1 0 2 0 0 1 2 0 0 5 0 1 1 0 0 0 2 0 0 2 0 4 1 0 1 4 0 3 1 0 4 0 2 0 1 1 0 0 1 0 1 1 1 0 4 1 3 1 1 ...

output:

22728530185

result:

ok 1 number(s): "22728530185"

Test #45:

score: 0
Accepted
time: 1122ms
memory: 20720kb

input:

130000 200000
1 1 1 6 0 1 0 3 1 2 1 0 1 2 1 1 4 1 1 1 1 1 3 0 4 1 1 4 1 7 1 1 0 1 2 1 1 1 4 3 0 2 0 1 0 3 1 1 8 4 1 1 1 0 0 1 1 1 0 7 1 3 1 0 1 1 1 0 1 0 2 0 9 1 1 1 1 3 4 1 3 2 1 2 1 0 0 1 3 7 1 0 0 1 1 2 0 0 1 1 1 0 0 4 1 5 2 1 1 8 1 0 0 1 2 1 1 0 1 1 2 3 9 1 1 4 3 2 2 1 1 0 1 1 1 1 4 5 4 1 1 0 0 ...

output:

14134819093

result:

ok 1 number(s): "14134819093"

Test #46:

score: 0
Accepted
time: 1261ms
memory: 21152kb

input:

120000 200000
4 1 1 4 4 2 0 4 1 1 0 1 4 3 1 8 0 1 1 0 0 0 3 3 0 1 1 1 1 1 0 2 3 1 9 0 2 3 2 0 2 1 16 1 7 0 1 1 1 1 1 3 2 1 5 1 1 2 3 4 1 1 6 1 0 1 0 3 1 1 0 1 1 1 3 1 3 1 1 0 1 0 3 8 1 3 0 1 13 0 1 0 1 0 2 1 1 1 1 0 4 0 1 0 1 2 3 1 4 0 1 2 0 1 0 1 1 5 3 0 2 1 0 1 3 1 0 1 1 0 1 4 1 2 1 1 0 4 1 0 1 0 ...

output:

13048112685

result:

ok 1 number(s): "13048112685"

Test #47:

score: 0
Accepted
time: 1383ms
memory: 21524kb

input:

110000 200000
1 1 8 4 8 1 0 0 1 3 1 1 9 0 1 5 1 1 1 3 3 1 16 4 1 1 4 0 0 5 0 0 2 1 0 0 4 1 1 1 3 2 1 1 1 1 2 1 5 3 1 5 1 5 0 3 2 1 3 1 5 1 1 0 1 1 1 5 1 0 0 1 0 1 1 0 1 1 1 1 2 1 1 2 1 5 1 0 0 2 0 2 1 1 1 6 1 1 8 1 0 2 4 1 4 1 3 1 1 1 1 1 1 1 1 1 3 1 1 0 1 1 2 1 1 1 0 1 1 1 6 2 1 5 1 5 1 1 1 1 1 1 0...

output:

11875762941

result:

ok 1 number(s): "11875762941"

Test #48:

score: 0
Accepted
time: 1549ms
memory: 22112kb

input:

100000 200000
0 2 1 5 1 0 1 1 1 1 1 3 0 4 8 1 1 1 1 0 0 1 1 1 1 1 4 0 4 1 1 5 6 2 1 1 1 1 1 2 1 1 1 3 1 3 1 0 1 0 6 1 1 1 4 1 1 5 8 0 1 6 1 1 1 0 4 9 7 1 10 1 1 3 4 1 1 1 1 3 3 0 2 0 1 1 2 1 1 1 1 1 1 1 0 0 4 3 2 2 1 5 1 2 1 1 10 1 1 1 1 1 1 3 0 1 1 1 1 1 4 1 1 0 0 1 4 1 5 5 1 5 0 1 3 2 1 0 4 9 3 1 ...

output:

10871306605

result:

ok 1 number(s): "10871306605"

Test #49:

score: 0
Accepted
time: 3ms
memory: 7764kb

input:

40001 200000
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:

80002

result:

ok 1 number(s): "80002"

Test #50:

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

input:

40002 200000
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:

160004

result:

ok 1 number(s): "160004"

Test #51:

score: 0
Accepted
time: 3ms
memory: 7756kb

input:

40005 200000
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:

1280032

result:

ok 1 number(s): "1280032"

Test #52:

score: 0
Accepted
time: 10ms
memory: 7968kb

input:

40010 200000
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:

40961024

result:

ok 1 number(s): "40961024"

Test #53:

score: 0
Accepted
time: 131ms
memory: 22864kb

input:

40020 200000
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:

4626623607

result:

ok 1 number(s): "4626623607"

Test #54:

score: 0
Accepted
time: 271ms
memory: 31308kb

input:

40040 200000
1 1 1 1 1 1 7667 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2139 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:

6244348043

result:

ok 1 number(s): "6244348043"

Test #55:

score: 0
Accepted
time: 362ms
memory: 31540kb

input:

40060 200000
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:

6329597379

result:

ok 1 number(s): "6329597379"

Test #56:

score: 0
Accepted
time: 394ms
memory: 31656kb

input:

40080 200000
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:

6393987891

result:

ok 1 number(s): "6393987891"

Test #57:

score: 0
Accepted
time: 472ms
memory: 31640kb

input:

40100 200000
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:

6393848161

result:

ok 1 number(s): "6393848161"

Test #58:

score: 0
Accepted
time: 881ms
memory: 31716kb

input:

40200 200000
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:

6404886465

result:

ok 1 number(s): "6404886465"

Test #59:

score: 0
Accepted
time: 1603ms
memory: 31672kb

input:

40400 200000
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 420 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 563 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:

6415036421

result:

ok 1 number(s): "6415036421"

Test #60:

score: 0
Accepted
time: 2211ms
memory: 31520kb

input:

40600 200000
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 17 1 1 1 1 23 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:

6423932929

result:

ok 1 number(s): "6423932929"

Test #61:

score: 0
Accepted
time: 2788ms
memory: 31628kb

input:

40800 200000
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 791 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:

6432643769

result:

ok 1 number(s): "6432643769"

Test #62:

score: 0
Accepted
time: 3263ms
memory: 31584kb

input:

41000 200000
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 235 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 19 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 3 1 309 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

output:

6440202809

result:

ok 1 number(s): "6440202809"

Test #63:

score: 0
Accepted
time: 4447ms
memory: 31396kb

input:

42000 200000
1 1 1 1 1 1 1 1 1 1 1 57 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 54 1 1 1 1 1 1 1 26 1 1 1 1 1 1 1 1 1 1 1 1 60 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 46 1 1 1 1 180 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 65 1 1 1 1 1 1 1 141 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

6477624213

result:

ok 1 number(s): "6477624213"

Test #64:

score: 0
Accepted
time: 4835ms
memory: 31284kb

input:

44000 200000
1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 90 60 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 44 1 1 1 1 1 1 1 1 1 1 47 37 1 1 1 1 1 1 1 1 14 25 1 198 74 1 1 1 1 1 1 1 24 1 1 1 1 1 1 1 1 1 1 1 1 23 13 1 1 1 1 24 1 1 1 104 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 65 1 1 1 1 1 1...

output:

6550566425

result:

ok 1 number(s): "6550566425"

Test #65:

score: 0
Accepted
time: 4253ms
memory: 30908kb

input:

48000 200000
1 1 1 1 1 1 1 1 1 1 1 21 1 1 1 1 1 1 1 40 1 1 1 1 1 1 1 1 1 1 1 1 49 1 19 1 6 1 1 1 2 1 1 1 39 1 1 15 1 1 9 1 1 1 1 1 33 12 5 1 51 48 1 1 1 13 3 1 1 35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 19 1 1 1 1 1 1 1 1 1 25 1 1 1 1 1 1 1 1 40 1 35 35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 5 1 36 1...

output:

6674182047

result:

ok 1 number(s): "6674182047"

Test #66:

score: 0
Accepted
time: 3032ms
memory: 30064kb

input:

56000 200000
1 25 1 12 5 1 2 1 1 1 1 1 6 1 1 32 1 1 1 13 9 1 1 9 1 15 22 1 1 7 1 1 1 1 1 1 1 27 4 1 1 1 2 1 28 1 1 1 1 1 8 1 10 1 2 2 1 5 23 1 12 1 1 1 1 1 1 1 1 16 8 1 1 2 1 3 6 2 1 7 1 1 1 1 1 19 1 1 1 3 1 1 1 1 16 1 1 1 1 3 1 7 1 4 1 1 3 4 1 1 1 2 2 1 1 1 3 1 20 1 1 21 1 1 1 1 1 1 2 1 1 2 1 1 1 1...

output:

6844905709

result:

ok 1 number(s): "6844905709"

Test #67:

score: 0
Accepted
time: 1835ms
memory: 23228kb

input:

72000 200000
1 5 1 2 1 8 6 1 15 2 2 7 14 2 1 1 1 1 2 1 5 1 1 1 1 1 1 8 2 1 1 1 3 1 4 2 1 8 9 1 7 1 1 1 9 6 2 5 1 3 1 9 1 1 12 1 1 5 5 1 6 1 1 1 1 1 1 1 6 1 1 1 6 1 2 5 1 4 1 6 1 1 1 1 1 1 2 2 1 6 3 3 7 3 7 1 7 3 1 4 1 1 8 7 1 2 1 4 1 1 1 3 5 6 3 1 2 2 1 2 1 1 5 1 1 1 1 2 1 3 1 1 5 3 8 7 4 2 1 6 7 1 ...

output:

6880182507

result:

ok 1 number(s): "6880182507"

Test #68:

score: 0
Accepted
time: 621ms
memory: 19988kb

input:

104000 200000
3 1 1 1 3 1 2 1 3 3 1 2 5 2 2 1 2 2 1 4 2 3 1 1 1 2 1 2 2 2 2 3 1 1 3 3 2 2 2 2 2 1 1 1 3 2 2 2 4 5 3 3 1 2 5 2 2 2 2 2 1 1 5 1 2 2 3 1 4 1 3 1 2 1 2 2 1 2 2 3 3 2 1 2 2 1 2 3 2 1 3 1 2 2 3 2 1 1 2 2 2 1 2 2 2 1 1 1 1 2 2 1 2 2 1 1 2 2 2 3 4 2 1 2 2 1 1 7 1 1 1 3 3 2 2 1 3 1 5 2 2 2 1 ...

output:

5374274367

result:

ok 1 number(s): "5374274367"

Test #69:

score: 0
Accepted
time: 475ms
memory: 19352kb

input:

120000 200000
2 1 3 3 2 1 2 2 3 2 2 0 1 1 2 2 2 1 0 1 1 3 1 2 1 1 1 1 1 2 1 2 0 3 2 0 3 2 1 3 2 4 1 2 1 1 1 1 1 1 2 0 2 0 1 2 2 0 2 1 1 2 2 1 2 2 1 2 3 2 2 0 1 2 3 1 1 1 2 2 3 2 0 1 2 2 1 1 3 2 2 0 0 2 5 1 1 2 2 1 2 1 1 3 2 1 2 2 3 1 1 2 2 2 1 2 1 1 2 2 0 2 1 0 2 2 2 2 2 2 1 2 2 1 1 0 4 1 0 2 1 0 1 ...

output:

6745448219

result:

ok 1 number(s): "6745448219"

Test #70:

score: 0
Accepted
time: 741ms
memory: 20456kb

input:

110000 200000
2 5 2 2 1 2 0 2 1 1 1 2 0 1 1 1 1 2 2 1 3 3 4 2 2 1 2 1 1 1 1 1 2 3 1 4 0 0 1 1 0 0 2 2 0 1 3 1 4 1 1 2 3 2 1 1 1 0 3 2 1 1 3 2 2 3 2 2 0 2 1 1 2 1 2 2 1 1 2 4 2 1 2 2 1 1 2 1 1 1 0 1 4 3 3 1 3 2 5 1 1 0 0 3 2 1 1 2 4 2 2 1 5 1 1 1 0 0 1 5 2 1 1 0 3 1 2 2 1 0 4 2 0 2 1 3 1 4 1 1 1 3 2 ...

output:

7712193683

result:

ok 1 number(s): "7712193683"

Test #71:

score: 0
Accepted
time: 1429ms
memory: 22520kb

input:

90000 200000
2 2 2 1 8 1 1 1 4 12 1 1 2 4 4 1 15 3 1 4 2 1 6 2 1 1 4 3 1 1 2 1 1 1 6 2 4 9 3 1 3 0 3 7 2 2 3 3 1 8 2 2 1 0 1 1 1 0 3 2 2 1 0 4 1 0 1 3 1 1 1 1 1 1 0 1 4 1 5 2 2 2 3 4 2 1 1 1 1 1 2 5 2 5 1 1 3 1 0 1 7 1 1 1 1 1 0 3 1 2 5 1 2 1 1 1 0 1 1 3 3 3 2 1 1 3 12 10 1 1 1 4 2 1 0 1 12 1 0 0 0 ...

output:

8718437229

result:

ok 1 number(s): "8718437229"

Test #72:

score: 0
Accepted
time: 1926ms
memory: 23480kb

input:

80000 200000
2 6 3 1 1 1 2 8 1 11 1 1 1 1 1 13 0 1 5 1 1 1 3 0 1 4 1 1 6 1 2 3 1 1 1 1 0 0 9 0 1 2 1 3 1 4 2 1 1 3 6 1 1 3 9 1 22 1 1 1 2 0 0 1 1 1 1 5 4 1 1 4 1 0 2 1 1 4 14 1 0 1 1 1 1 1 1 2 1 1 3 3 0 0 6 1 1 4 2 1 6 7 1 2 1 1 1 1 0 1 4 1 1 1 1 3 2 1 1 1 3 0 0 1 2 9 9 1 1 15 1 7 0 0 4 2 1 6 2 8 0 ...

output:

8892185533

result:

ok 1 number(s): "8892185533"

Test #73:

score: 0
Accepted
time: 2730ms
memory: 29640kb

input:

70000 200000
1 1 4 1 0 1 1 1 1 5 1 0 1 1 1 1 1 1 1 6 1 1 1 1 3 2 1 13 0 4 1 1 8 1 11 1 7 1 1 1 1 1 2 1 1 1 1 1 1 2 2 1 1 1 1 6 1 1 0 0 0 10 5 1 0 0 1 1 6 1 1 1 1 18 1 9 1 1 1 0 0 6 1 1 0 0 1 8 0 1 1 1 1 0 14 1 1 1 4 1 5 8 2 20 1 0 4 1 0 0 0 1 1 1 1 1 1 10 0 1 3 1 1 3 19 1 1 0 0 1 1 0 1 1 1 1 14 0 0 ...

output:

8895563309

result:

ok 1 number(s): "8895563309"

Test #74:

score: 0
Accepted
time: 3856ms
memory: 30676kb

input:

60000 200000
1 1 29 1 1 1 19 1 61 32 1 1 18 1 0 6 20 1 1 1 1 24 0 0 1 1 16 1 1 1 0 46 22 1 1 1 40 1 1 4 2 1 1 1 1 1 34 1 0 1 14 1 1 10 1 1 1 1 1 1 1 5 1 0 1 1 1 0 8 14 1 1 0 31 1 1 1 1 1 15 11 1 0 1 0 1 1 1 1 0 5 1 0 1 9 4 1 1 1 0 0 1 3 1 8 1 0 0 1 0 0 1 1 1 5 1 1 1 1 5 1 0 37 1 0 1 1 0 1 0 1 1 11 0...

output:

8715188297

result:

ok 1 number(s): "8715188297"

Test #75:

score: 0
Accepted
time: 4809ms
memory: 31212kb

input:

55000 200000
1 0 1 0 1 1 1 49 1 0 1 16 1 1 0 1 1 11 1 1 1 1 1 1 10 1 0 1 0 0 0 0 0 1 1 1 1 60 1 23 1 0 0 1 46 1 1 0 1 1 1 25 1 2 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 33 0 1 1 1 0 17 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 106 1 1 1 0 1 6 0 1 0 0 1 1 50 28 1 1 1 1 0 12 1 ...

output:

8586958759

result:

ok 1 number(s): "8586958759"

Test #76:

score: 0
Accepted
time: 4852ms
memory: 31328kb

input:

54000 200000
0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 53 0 0 1 0 1 1 1 0 0 0 1 1 1 1 21 0 1 1 1 0 0 0 1 59 1 1 1 1 7 1 1 58 1 1 1 1 30 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 52 0 0...

output:

8546536201

result:

ok 1 number(s): "8546536201"

Test #77:

score: 0
Accepted
time: 4880ms
memory: 31380kb

input:

53000 200000
0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 53 0 40 1 32 1 1 1 1 0 1 1 1 28 1 38 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 100 33 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 0 1 1 0 1 54 1 1 0 0 1...

output:

8510129081

result:

ok 1 number(s): "8510129081"

Test #78:

score: -100
Time Limit Exceeded

input:

52000 200000
1 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 163 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 258 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 26 1 0 1 13 1 1 1 73 1 1 ...

output:


result: