QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#754182#9556. The Hanged Manucup-team087#AC ✓121ms93644kbC++2328.5kb2024-11-16 14:26:392024-11-16 14:26:39

Judging History

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

  • [2024-11-16 14:26:39]
  • 评测
  • 测评结果:AC
  • 用时:121ms
  • 内存:93644kb
  • [2024-11-16 14:26:39]
  • 提交

answer

#line 1 "library/my_template.hpp"
#if defined(LOCAL)
#include <my_template_compiled.hpp>
#else

// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("Ofast,unroll-loops")
// いまの CF だとこれ入れると動かない?
// #pragma GCC target("avx2,popcnt")

#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using u8 = uint8_t;
using u16 = uint16_t;
using u32 = uint32_t;
using u64 = uint64_t;
using i128 = __int128;
using u128 = unsigned __int128;
using f128 = __float128;

template <class T>
constexpr T infty = 0;
template <>
constexpr int infty<int> = 1'010'000'000;
template <>
constexpr ll infty<ll> = 2'020'000'000'000'000'000;
template <>
constexpr u32 infty<u32> = infty<int>;
template <>
constexpr u64 infty<u64> = infty<ll>;
template <>
constexpr i128 infty<i128> = i128(infty<ll>) * 2'000'000'000'000'000'000;
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); }
int popcnt_sgn(int x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
int popcnt_sgn(u32 x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
int popcnt_sgn(ll x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
int popcnt_sgn(u64 x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
// (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>
T floor(T a, T b) {
  return a / b - (a % b && (a ^ b) < 0);
}
template <typename T>
T ceil(T x, T y) {
  return floor(x + y - 1, y);
}
template <typename T>
T bmod(T x, T y) {
  return x - y * floor(x, y);
}
template <typename T>
pair<T, T> divmod(T x, T y) {
  T q = floor(x, y);
  return {q, x - q * y};
}

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

#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) {
  T a = que.top();
  que.pop();
  return a;
}
template <typename T>
T POP(vc<T> &que) {
  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;
    (check(x) ? ok : ng) = 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;
    (check(x) ? ok : ng) = 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;
}

template <typename T, typename... Vectors>
void concat(vc<T> &first, const Vectors &... others) {
  vc<T> &res = first;
  (res.insert(res.end(), others.begin(), others.end()), ...);
}
#endif
#line 1 "library/other/io.hpp"
#define FASTIO
#include <unistd.h>

// https://judge.yosupo.jp/submission/21623
namespace fastio {
static constexpr uint32_t SZ = 1 << 17;
char ibuf[SZ];
char obuf[SZ];
char out[100];
// pointer of ibuf, obuf
uint32_t pil = 0, pir = 0, por = 0;

struct Pre {
  char num[10000][4];
  constexpr Pre() : num() {
    for (int i = 0; i < 10000; i++) {
      int n = i;
      for (int j = 3; j >= 0; j--) {
        num[i][j] = n % 10 | '0';
        n /= 10;
      }
    }
  }
} constexpr pre;

inline void load() {
  memcpy(ibuf, ibuf + pil, pir - pil);
  pir = pir - pil + fread(ibuf + pir - pil, 1, SZ - pir + pil, stdin);
  pil = 0;
  if (pir < SZ) ibuf[pir++] = '\n';
}

inline void flush() {
  fwrite(obuf, 1, por, stdout);
  por = 0;
}

void rd(char &c) {
  do {
    if (pil + 1 > pir) load();
    c = ibuf[pil++];
  } while (isspace(c));
}

void rd(string &x) {
  x.clear();
  char c;
  do {
    if (pil + 1 > pir) load();
    c = ibuf[pil++];
  } while (isspace(c));
  do {
    x += c;
    if (pil == pir) load();
    c = ibuf[pil++];
  } while (!isspace(c));
}

template <typename T>
void rd_real(T &x) {
  string s;
  rd(s);
  x = stod(s);
}

template <typename T>
void rd_integer(T &x) {
  if (pil + 100 > pir) load();
  char c;
  do
    c = ibuf[pil++];
  while (c < '-');
  bool minus = 0;
  if constexpr (is_signed<T>::value || is_same_v<T, i128>) {
    if (c == '-') { minus = 1, c = ibuf[pil++]; }
  }
  x = 0;
  while ('0' <= c) { x = x * 10 + (c & 15), c = ibuf[pil++]; }
  if constexpr (is_signed<T>::value || is_same_v<T, i128>) {
    if (minus) x = -x;
  }
}

void rd(int &x) { rd_integer(x); }
void rd(ll &x) { rd_integer(x); }
void rd(i128 &x) { rd_integer(x); }
void rd(u32 &x) { rd_integer(x); }
void rd(u64 &x) { rd_integer(x); }
void rd(u128 &x) { rd_integer(x); }
void rd(double &x) { rd_real(x); }
void rd(long double &x) { rd_real(x); }
void rd(f128 &x) { rd_real(x); }

template <class T, class U>
void rd(pair<T, U> &p) {
  return rd(p.first), rd(p.second);
}
template <size_t N = 0, typename T>
void rd_tuple(T &t) {
  if constexpr (N < std::tuple_size<T>::value) {
    auto &x = std::get<N>(t);
    rd(x);
    rd_tuple<N + 1>(t);
  }
}
template <class... T>
void rd(tuple<T...> &tpl) {
  rd_tuple(tpl);
}

template <size_t N = 0, typename T>
void rd(array<T, N> &x) {
  for (auto &d: x) rd(d);
}
template <class T>
void rd(vc<T> &x) {
  for (auto &d: x) rd(d);
}

void read() {}
template <class H, class... T>
void read(H &h, T &... t) {
  rd(h), read(t...);
}

void wt(const char c) {
  if (por == SZ) flush();
  obuf[por++] = c;
}
void wt(const string s) {
  for (char c: s) wt(c);
}
void wt(const char *s) {
  size_t len = strlen(s);
  for (size_t i = 0; i < len; i++) wt(s[i]);
}

template <typename T>
void wt_integer(T x) {
  if (por > SZ - 100) flush();
  if (x < 0) { obuf[por++] = '-', x = -x; }
  int outi;
  for (outi = 96; x >= 10000; outi -= 4) {
    memcpy(out + outi, pre.num[x % 10000], 4);
    x /= 10000;
  }
  if (x >= 1000) {
    memcpy(obuf + por, pre.num[x], 4);
    por += 4;
  } else if (x >= 100) {
    memcpy(obuf + por, pre.num[x] + 1, 3);
    por += 3;
  } else if (x >= 10) {
    int q = (x * 103) >> 10;
    obuf[por] = q | '0';
    obuf[por + 1] = (x - q * 10) | '0';
    por += 2;
  } else
    obuf[por++] = x | '0';
  memcpy(obuf + por, out + outi + 4, 96 - outi);
  por += 96 - outi;
}

template <typename T>
void wt_real(T x) {
  ostringstream oss;
  oss << fixed << setprecision(15) << double(x);
  string s = oss.str();
  wt(s);
}

void wt(int x) { wt_integer(x); }
void wt(ll x) { wt_integer(x); }
void wt(i128 x) { wt_integer(x); }
void wt(u32 x) { wt_integer(x); }
void wt(u64 x) { wt_integer(x); }
void wt(u128 x) { wt_integer(x); }
void wt(double x) { wt_real(x); }
void wt(long double x) { wt_real(x); }
void wt(f128 x) { wt_real(x); }

template <class T, class U>
void wt(const pair<T, U> val) {
  wt(val.first);
  wt(' ');
  wt(val.second);
}
template <size_t N = 0, typename T>
void wt_tuple(const T t) {
  if constexpr (N < std::tuple_size<T>::value) {
    if constexpr (N > 0) { wt(' '); }
    const auto x = std::get<N>(t);
    wt(x);
    wt_tuple<N + 1>(t);
  }
}
template <class... T>
void wt(tuple<T...> tpl) {
  wt_tuple(tpl);
}
template <class T, size_t S>
void wt(const array<T, S> val) {
  auto n = val.size();
  for (size_t i = 0; i < n; i++) {
    if (i) wt(' ');
    wt(val[i]);
  }
}
template <class T>
void wt(const vector<T> val) {
  auto n = val.size();
  for (size_t i = 0; i < n; i++) {
    if (i) wt(' ');
    wt(val[i]);
  }
}

void print() { wt('\n'); }
template <class Head, class... Tail>
void print(Head &&head, Tail &&... tail) {
  wt(head);
  if (sizeof...(Tail)) wt(' ');
  print(forward<Tail>(tail)...);
}

// gcc expansion. called automaticall after main.
void __attribute__((destructor)) _d() { flush(); }
} // namespace fastio
using fastio::read;
using fastio::print;
using fastio::flush;

#if defined(LOCAL)
#define SHOW(...) SHOW_IMPL(__VA_ARGS__, SHOW6, SHOW5, SHOW4, SHOW3, SHOW2, SHOW1)(__VA_ARGS__)
#define SHOW_IMPL(_1, _2, _3, _4, _5, _6, NAME, ...) NAME
#define SHOW1(x) print(#x, "=", (x)), flush()
#define SHOW2(x, y) print(#x, "=", (x), #y, "=", (y)), flush()
#define SHOW3(x, y, z) print(#x, "=", (x), #y, "=", (y), #z, "=", (z)), flush()
#define SHOW4(x, y, z, w) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w)), flush()
#define SHOW5(x, y, z, w, v) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w), #v, "=", (v)), flush()
#define SHOW6(x, y, z, w, v, u) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w), #v, "=", (v), #u, "=", (u)), flush()
#else
#define SHOW(...)
#endif

#define INT(...)   \
  int __VA_ARGS__; \
  read(__VA_ARGS__)
#define LL(...)   \
  ll __VA_ARGS__; \
  read(__VA_ARGS__)
#define U32(...)   \
  u32 __VA_ARGS__; \
  read(__VA_ARGS__)
#define U64(...)   \
  u64 __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/graph/tree.hpp"

#line 2 "library/graph/base.hpp"

template <typename T>
struct Edge {
  int frm, to;
  T cost;
  int id;
};

template <typename T = int, bool directed = false>
struct Graph {
  static constexpr bool is_directed = directed;
  int N, M;
  using cost_type = T;
  using edge_type = Edge<T>;
  vector<edge_type> edges;
  vector<int> indptr;
  vector<edge_type> csr_edges;
  vc<int> vc_deg, vc_indeg, vc_outdeg;
  bool prepared;

  class OutgoingEdges {
  public:
    OutgoingEdges(const Graph* G, int l, int r) : G(G), l(l), r(r) {}

    const edge_type* begin() const {
      if (l == r) { return 0; }
      return &G->csr_edges[l];
    }

    const edge_type* end() const {
      if (l == r) { return 0; }
      return &G->csr_edges[r];
    }

  private:
    const Graph* G;
    int l, r;
  };

  bool is_prepared() { return prepared; }

  Graph() : N(0), M(0), prepared(0) {}
  Graph(int N) : N(N), M(0), prepared(0) {}

  void build(int n) {
    N = n, M = 0;
    prepared = 0;
    edges.clear();
    indptr.clear();
    csr_edges.clear();
    vc_deg.clear();
    vc_indeg.clear();
    vc_outdeg.clear();
  }

  void add(int frm, int to, T cost = 1, int i = -1) {
    assert(!prepared);
    assert(0 <= frm && 0 <= to && to < N);
    if (i == -1) i = M;
    auto e = edge_type({frm, to, cost, i});
    edges.eb(e);
    ++M;
  }

#ifdef FASTIO
  // wt, off
  void read_tree(bool wt = false, int off = 1) { read_graph(N - 1, wt, off); }

  void read_graph(int M, bool wt = false, int off = 1) {
    for (int m = 0; m < M; ++m) {
      INT(a, b);
      a -= off, b -= off;
      if (!wt) {
        add(a, b);
      } else {
        T c;
        read(c);
        add(a, b, c);
      }
    }
    build();
  }
#endif

  void build() {
    assert(!prepared);
    prepared = true;
    indptr.assign(N + 1, 0);
    for (auto&& e: edges) {
      indptr[e.frm + 1]++;
      if (!directed) indptr[e.to + 1]++;
    }
    for (int v = 0; v < N; ++v) { indptr[v + 1] += indptr[v]; }
    auto counter = indptr;
    csr_edges.resize(indptr.back() + 1);
    for (auto&& e: edges) {
      csr_edges[counter[e.frm]++] = e;
      if (!directed)
        csr_edges[counter[e.to]++] = edge_type({e.to, e.frm, e.cost, e.id});
    }
  }

  OutgoingEdges operator[](int v) const {
    assert(prepared);
    return {this, indptr[v], indptr[v + 1]};
  }

  vc<int> deg_array() {
    if (vc_deg.empty()) calc_deg();
    return vc_deg;
  }

  pair<vc<int>, vc<int>> deg_array_inout() {
    if (vc_indeg.empty()) calc_deg_inout();
    return {vc_indeg, vc_outdeg};
  }

  int deg(int v) {
    if (vc_deg.empty()) calc_deg();
    return vc_deg[v];
  }

  int in_deg(int v) {
    if (vc_indeg.empty()) calc_deg_inout();
    return vc_indeg[v];
  }

  int out_deg(int v) {
    if (vc_outdeg.empty()) calc_deg_inout();
    return vc_outdeg[v];
  }

#ifdef FASTIO
  void debug() {
    print("Graph");
    if (!prepared) {
      print("frm to cost id");
      for (auto&& e: edges) print(e.frm, e.to, e.cost, e.id);
    } else {
      print("indptr", indptr);
      print("frm to cost id");
      FOR(v, N) for (auto&& e: (*this)[v]) print(e.frm, e.to, e.cost, e.id);
    }
  }
#endif

  vc<int> new_idx;
  vc<bool> used_e;

  // G における頂点 V[i] が、新しいグラフで i になるようにする
  // {G, es}
  // sum(deg(v)) の計算量になっていて、
  // 新しいグラフの n+m より大きい可能性があるので注意
  Graph<T, directed> rearrange(vc<int> V, bool keep_eid = 0) {
    if (len(new_idx) != N) new_idx.assign(N, -1);
    int n = len(V);
    FOR(i, n) new_idx[V[i]] = i;
    Graph<T, directed> G(n);
    vc<int> history;
    FOR(i, n) {
      for (auto&& e: (*this)[V[i]]) {
        if (len(used_e) <= e.id) used_e.resize(e.id + 1);
        if (used_e[e.id]) continue;
        int a = e.frm, b = e.to;
        if (new_idx[a] != -1 && new_idx[b] != -1) {
          history.eb(e.id);
          used_e[e.id] = 1;
          int eid = (keep_eid ? e.id : -1);
          G.add(new_idx[a], new_idx[b], e.cost, eid);
        }
      }
    }
    FOR(i, n) new_idx[V[i]] = -1;
    for (auto&& eid: history) used_e[eid] = 0;
    G.build();
    return G;
  }

  Graph<T, true> to_directed_tree(int root = -1) {
    if (root == -1) root = 0;
    assert(!is_directed && prepared && M == N - 1);
    Graph<T, true> G1(N);
    vc<int> par(N, -1);
    auto dfs = [&](auto& dfs, int v) -> void {
      for (auto& e: (*this)[v]) {
        if (e.to == par[v]) continue;
        par[e.to] = v, dfs(dfs, e.to);
      }
    };
    dfs(dfs, root);
    for (auto& e: edges) {
      int a = e.frm, b = e.to;
      if (par[a] == b) swap(a, b);
      assert(par[b] == a);
      G1.add(a, b, e.cost);
    }
    G1.build();
    return G1;
  }

private:
  void calc_deg() {
    assert(vc_deg.empty());
    vc_deg.resize(N);
    for (auto&& e: edges) vc_deg[e.frm]++, vc_deg[e.to]++;
  }

  void calc_deg_inout() {
    assert(vc_indeg.empty());
    vc_indeg.resize(N);
    vc_outdeg.resize(N);
    for (auto&& e: edges) { vc_indeg[e.to]++, vc_outdeg[e.frm]++; }
  }
};
#line 4 "library/graph/tree.hpp"

// HLD euler tour をとっていろいろ。
template <typename GT>
struct Tree {
  using Graph_type = GT;
  GT &G;
  using WT = typename GT::cost_type;
  int N;
  vector<int> LID, RID, head, V, parent, VtoE;
  vc<int> depth;
  vc<WT> depth_weighted;

  Tree(GT &G, int r = 0, bool hld = 1) : G(G) { build(r, hld); }

  void build(int r = 0, bool hld = 1) {
    if (r == -1) return; // build を遅延したいとき
    N = G.N;
    LID.assign(N, -1), RID.assign(N, -1), head.assign(N, r);
    V.assign(N, -1), parent.assign(N, -1), VtoE.assign(N, -1);
    depth.assign(N, -1), depth_weighted.assign(N, 0);
    assert(G.is_prepared());
    int t1 = 0;
    dfs_sz(r, -1, hld);
    dfs_hld(r, t1);
  }

  void dfs_sz(int v, int p, bool hld) {
    auto &sz = RID;
    parent[v] = p;
    depth[v] = (p == -1 ? 0 : depth[p] + 1);
    sz[v] = 1;
    int l = G.indptr[v], r = G.indptr[v + 1];
    auto &csr = G.csr_edges;
    // 使う辺があれば先頭にする
    for (int i = r - 2; i >= l; --i) {
      if (hld && depth[csr[i + 1].to] == -1) swap(csr[i], csr[i + 1]);
    }
    int hld_sz = 0;
    for (int i = l; i < r; ++i) {
      auto e = csr[i];
      if (depth[e.to] != -1) continue;
      depth_weighted[e.to] = depth_weighted[v] + e.cost;
      VtoE[e.to] = e.id;
      dfs_sz(e.to, v, hld);
      sz[v] += sz[e.to];
      if (hld && chmax(hld_sz, sz[e.to]) && l < i) { swap(csr[l], csr[i]); }
    }
  }

  void dfs_hld(int v, int &times) {
    LID[v] = times++;
    RID[v] += LID[v];
    V[LID[v]] = v;
    bool heavy = true;
    for (auto &&e: G[v]) {
      if (depth[e.to] <= depth[v]) continue;
      head[e.to] = (heavy ? head[v] : e.to);
      heavy = false;
      dfs_hld(e.to, times);
    }
  }

  vc<int> heavy_path_at(int v) {
    vc<int> P = {v};
    while (1) {
      int a = P.back();
      for (auto &&e: G[a]) {
        if (e.to != parent[a] && head[e.to] == v) {
          P.eb(e.to);
          break;
        }
      }
      if (P.back() == a) break;
    }
    return P;
  }

  int heavy_child(int v) {
    int k = LID[v] + 1;
    if (k == N) return -1;
    int w = V[k];
    return (parent[w] == v ? w : -1);
  }

  int e_to_v(int eid) {
    auto e = G.edges[eid];
    return (parent[e.frm] == e.to ? e.frm : e.to);
  }
  int v_to_e(int v) { return VtoE[v]; }
  int get_eid(int u, int v) {
    if (parent[u] != v) swap(u, v);
    assert(parent[u] == v);
    return VtoE[u];
  }

  int ELID(int v) { return 2 * LID[v] - depth[v]; }
  int ERID(int v) { return 2 * RID[v] - depth[v] - 1; }

  // 目標地点へ進む個数が k
  int LA(int v, int k) {
    assert(k <= depth[v]);
    while (1) {
      int u = head[v];
      if (LID[v] - k >= LID[u]) return V[LID[v] - k];
      k -= LID[v] - LID[u] + 1;
      v = parent[u];
    }
  }
  int la(int u, int v) { return LA(u, v); }

  int LCA(int u, int v) {
    for (;; v = parent[head[v]]) {
      if (LID[u] > LID[v]) swap(u, v);
      if (head[u] == head[v]) return u;
    }
  }

  int meet(int a, int b, int c) { return LCA(a, b) ^ LCA(a, c) ^ LCA(b, c); }
  int lca(int u, int v) { return LCA(u, v); }

  int subtree_size(int v, int root = -1) {
    if (root == -1) return RID[v] - LID[v];
    if (v == root) return N;
    int x = jump(v, root, 1);
    if (in_subtree(v, x)) return RID[v] - LID[v];
    return N - RID[x] + LID[x];
  }

  int dist(int a, int b) {
    int c = LCA(a, b);
    return depth[a] + depth[b] - 2 * depth[c];
  }

  WT dist_weighted(int a, int b) {
    int c = LCA(a, b);
    return depth_weighted[a] + depth_weighted[b] - WT(2) * depth_weighted[c];
  }

  // a is in b
  bool in_subtree(int a, int b) { return LID[b] <= LID[a] && LID[a] < RID[b]; }

  int jump(int a, int b, ll k) {
    if (k == 1) {
      if (a == b) return -1;
      return (in_subtree(b, a) ? LA(b, depth[b] - depth[a] - 1) : parent[a]);
    }
    int c = LCA(a, b);
    int d_ac = depth[a] - depth[c];
    int d_bc = depth[b] - depth[c];
    if (k > d_ac + d_bc) return -1;
    if (k <= d_ac) return LA(a, k);
    return LA(b, d_ac + d_bc - k);
  }

  vc<int> collect_child(int v) {
    vc<int> res;
    for (auto &&e: G[v])
      if (e.to != parent[v]) res.eb(e.to);
    return res;
  }

  vc<int> collect_light(int v) {
    vc<int> res;
    bool skip = true;
    for (auto &&e: G[v])
      if (e.to != parent[v]) {
        if (!skip) res.eb(e.to);
        skip = false;
      }
    return res;
  }

  vc<pair<int, int>> get_path_decomposition(int u, int v, bool edge) {
    // [始点, 終点] の"閉"区間列。
    vc<pair<int, int>> up, down;
    while (1) {
      if (head[u] == head[v]) break;
      if (LID[u] < LID[v]) {
        down.eb(LID[head[v]], LID[v]);
        v = parent[head[v]];
      } else {
        up.eb(LID[u], LID[head[u]]);
        u = parent[head[u]];
      }
    }
    if (LID[u] < LID[v]) down.eb(LID[u] + edge, LID[v]);
    elif (LID[v] + edge <= LID[u]) up.eb(LID[u], LID[v] + edge);
    reverse(all(down));
    up.insert(up.end(), all(down));
    return up;
  }

  // 辺の列の情報 (frm,to,str)
  // str = "heavy_up", "heavy_down", "light_up", "light_down"
  vc<tuple<int, int, string>> get_path_decomposition_detail(int u, int v) {
    vc<tuple<int, int, string>> up, down;
    while (1) {
      if (head[u] == head[v]) break;
      if (LID[u] < LID[v]) {
        if (v != head[v]) down.eb(head[v], v, "heavy_down"), v = head[v];
        down.eb(parent[v], v, "light_down"), v = parent[v];
      } else {
        if (u != head[u]) up.eb(u, head[u], "heavy_up"), u = head[u];
        up.eb(u, parent[u], "light_up"), u = parent[u];
      }
    }
    if (LID[u] < LID[v]) down.eb(u, v, "heavy_down");
    elif (LID[v] < LID[u]) up.eb(u, v, "heavy_up");
    reverse(all(down));
    concat(up, down);
    return up;
  }

  vc<int> restore_path(int u, int v) {
    vc<int> P;
    for (auto &&[a, b]: get_path_decomposition(u, v, 0)) {
      if (a <= b) {
        FOR(i, a, b + 1) P.eb(V[i]);
      } else {
        FOR_R(i, b, a + 1) P.eb(V[i]);
      }
    }
    return P;
  }

  // path [a,b] と [c,d] の交わり. 空ならば {-1,-1}.
  // https://codeforces.com/problemset/problem/500/G
  pair<int, int> path_intersection(int a, int b, int c, int d) {
    int ab = lca(a, b), ac = lca(a, c), ad = lca(a, d);
    int bc = lca(b, c), bd = lca(b, d), cd = lca(c, d);
    int x = ab ^ ac ^ bc, y = ab ^ ad ^ bd; // meet(a,b,c), meet(a,b,d)
    if (x != y) return {x, y};
    int z = ac ^ ad ^ cd;
    if (x != z) x = -1;
    return {x, x};
  }

  // uv path 上で check(v) を満たす最後の v
  // なければ (つまり check(v) が ng )-1
  template <class F>
  int max_path(F check, int u, int v) {
    if (!check(u)) return -1;
    auto pd = get_path_decomposition(u, v, false);
    for (auto [a, b]: pd) {
      if (!check(V[a])) return u;
      if (check(V[b])) {
        u = V[b];
        continue;
      }
      int c = binary_search([&](int c) -> bool { return check(V[c]); }, a, b, 0);
      return V[c];
    }
    return u;
  }
};
#line 2 "library/ds/unionfind/unionfind.hpp"

struct UnionFind {
  int n, n_comp;
  vc<int> dat; // par or (-size)
  UnionFind(int n = 0) { build(n); }

  void build(int m) {
    n = m, n_comp = m;
    dat.assign(n, -1);
  }

  void reset() { build(n); }

  int operator[](int x) {
    while (dat[x] >= 0) {
      int pp = dat[dat[x]];
      if (pp < 0) { return dat[x]; }
      x = dat[x] = pp;
    }
    return x;
  }

  ll size(int x) {
    x = (*this)[x];
    return -dat[x];
  }

  bool merge(int x, int y) {
    x = (*this)[x], y = (*this)[y];
    if (x == y) return false;
    if (-dat[x] < -dat[y]) swap(x, y);
    dat[x] += dat[y], dat[y] = x, n_comp--;
    return true;
  }

  vc<int> get_all() {
    vc<int> A(n);
    FOR(i, n) A[i] = (*this)[i];
    return A;
  }
};
#line 6 "main.cpp"

void solve() {
  LL(N);
  Graph<int, 0> G(N);
  G.read_tree();
  // 葉を根にする
  int r = 0;
  FOR(v, N) if (G.deg(v) == 1) r = v;

  vc<int> dp(N);
  Tree<decltype(G)> tree(G, r);

  FOR_R(i, N) {
    int v = tree.V[i];
    if (G.deg(v) % 2 == 0) {
      dp[v] = 1;
      continue;
    }
    auto ch = tree.collect_child(v);
    for (auto& w: ch)
      if (dp[w]) dp[v] = 1;
  }
  int c = tree.V[1];

  if (!dp[c]) return print(-1);

  vvc<int> ANS;
  auto dfs = [&](auto& dfs, int v, vc<int>& path, bool one) -> void {
    path.eb(v);
    auto ch = tree.collect_child(v);
    if (ch.empty()) { return; }
    if (len(ch) % 2 == 1) {
      int c = POP(ch);
      dfs(dfs, c, path, false);
      while (len(ch)) {
        int a = POP(ch);
        vc<int> S;
        S.eb(v);
        dfs(dfs, a, S, false);
        int b = POP(ch);
        reverse(all(S));
        dfs(dfs, b, S, false);
        ANS.eb(S);
      }
      return;
    }
    if (!one) {
      while (len(ch)) {
        int a = POP(ch);
        vc<int> S;
        S.eb(v);
        dfs(dfs, a, S, false);
        int b = POP(ch);
        reverse(all(S));
        dfs(dfs, b, S, false);
        ANS.eb(S);
      }
      return;
    }

    int w = -1;
    for (auto& c: ch)
      if (dp[c]) w = c;
    assert(w != -1);
    FOR(i, len(ch) - 1) if (ch[i] == w) swap(ch[i], ch.back());
    {
      vc<int> S = {v};
      dfs(dfs, POP(ch), S, true);
      ANS.eb(S);
    }
    int c = POP(ch);
    dfs(dfs, c, path, false);
    while (len(ch)) {
      int a = POP(ch);
      vc<int> S;
      S.eb(v);
      dfs(dfs, a, S, false);
      int b = POP(ch);
      reverse(all(S));
      dfs(dfs, b, S, false);
      ANS.eb(S);
    }
  };

  vc<int> path = {r};
  dfs(dfs, c, path, true);
  ANS.eb(path);

  vc<int> CNT(N - 1);
  for (auto& S: ANS) {
    assert(len(S) >= 3);
    FOR(k, len(S) - 1) {
      int a = S[k], b = S[k + 1];
      int idx = tree.get_eid(a, b);
      CNT[idx]++;
    }
  }
  FOR(e, N - 1) assert(CNT[e] == 1);

  print(len(ANS));
  for (auto& S: ANS) print(1 + S[0], 1 + S.back());
}

signed main() {
  INT(T);
  FOR(T) solve();
  return 0;
}

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

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3676kb

input:

3
4
1 2
2 3
2 4
7
1 2
1 3
1 4
4 5
4 6
4 7
6
1 2
2 3
2 4
1 5
5 6

output:

-1
3
2 3
6 1
7 5
2
3 4
6 2

result:

ok Good Job! (3 test cases)

Test #2:

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

input:

3
6
1 2
1 3
1 4
4 5
4 6
2
1 2
2
2 1

output:

-1
-1
-1

result:

ok Good Job! (3 test cases)

Test #3:

score: 0
Accepted
time: 52ms
memory: 3904kb

input:

100000
3
1 3
2 1
3
2 3
1 2
3
2 3
1 3
3
2 1
1 3
3
1 2
2 3
3
1 3
2 3
3
2 1
1 3
3
2 3
1 2
3
2 3
1 3
3
2 1
1 3
3
2 3
1 2
3
1 3
2 3
3
1 3
2 1
3
2 3
1 2
3
2 3
1 3
3
1 3
2 1
3
1 2
2 3
3
1 3
2 3
3
2 1
1 3
3
1 2
2 3
3
1 3
2 3
3
1 3
2 1
3
2 3
1 2
3
1 3
2 3
3
1 3
2 1
3
2 3
1 2
3
1 3
2 3
3
2 1
1 3
3
2 3
1 2
3
2...

output:

1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
1
2 1
1
3 2
1
3 1
...

result:

ok Good Job! (100000 test cases)

Test #4:

score: 0
Accepted
time: 46ms
memory: 3960kb

input:

75000
4
3 1
2 1
1 4
4
3 1
2 4
1 2
4
2 1
1 3
3 4
4
1 4
2 1
3 4
4
2 1
3 2
1 4
4
3 2
2 4
1 2
4
2 3
3 4
1 2
4
3 4
2 4
1 2
4
3 1
1 4
2 3
4
3 2
1 3
2 4
4
2 3
1 3
3 4
4
1 3
3 4
2 4
4
3 1
1 4
2 4
4
3 2
2 4
1 4
4
2 3
3 4
1 4
4
3 4
2 4
1 4
4
1 4
2 1
3 1
4
2 4
3 1
1 2
4
2 1
3 4
1 3
4
2 1
1 4
3 4
4
1 4
2 1
3 2
...

output:

-1
1
4 3
1
4 2
1
3 2
1
4 3
-1
1
4 1
1
3 1
1
4 2
1
4 1
-1
1
2 1
1
3 2
1
3 1
1
2 1
-1
-1
1
4 3
1
4 2
1
3 2
1
4 3
-1
1
4 1
1
3 1
1
4 2
1
4 1
-1
1
2 1
1
3 2
1
3 1
1
2 1
-1
-1
1
4 3
1
4 2
1
3 2
1
4 3
-1
1
4 1
1
3 1
1
4 2
1
4 1
-1
1
2 1
1
3 2
1
3 1
1
2 1
-1
-1
1
4 3
1
4 2
1
3 2
1
4 3
-1
1
4 1
1
3 1
1
4 2
...

result:

ok Good Job! (75000 test cases)

Test #5:

score: 0
Accepted
time: 49ms
memory: 4156kb

input:

60000
5
2 1
3 1
4 1
1 5
5
1 2
4 1
2 5
3 1
5
1 3
3 5
4 1
2 1
5
2 1
4 5
1 4
3 1
5
3 1
1 5
2 1
4 5
5
3 1
4 2
1 5
2 1
5
1 2
3 1
2 5
4 2
5
4 1
1 2
3 5
2 3
5
3 1
2 4
4 5
1 2
5
4 5
3 1
2 5
1 2
5
1 5
2 1
3 1
4 3
5
1 3
4 1
2 5
3 2
5
4 3
2 1
1 3
3 5
5
3 4
1 3
4 5
2 1
5
2 1
1 3
4 5
3 5
5
3 4
4 1
1 5
2 1
5
3 1
...

output:

2
2 4
5 3
2
4 3
5 1
2
4 2
5 1
2
2 3
5 1
2
3 2
4 1
2
1 4
5 3
2
2 3
5 4
1
5 4
1
5 3
1
4 3
2
1 4
5 2
1
5 4
2
3 2
5 4
1
5 2
1
4 2
2
1 3
5 2
1
5 3
1
5 2
2
4 2
5 3
1
3 2
2
1 3
4 2
1
4 3
1
4 2
1
3 2
2
5 2
4 3
2
1 3
5 4
2
2 4
5 3
1
5 4
1
5 3
1
4 3
2
3 4
5 2
2
4 3
5 1
2
1 4
5 2
2
1 3
5 2
2
1 3
4 2
1
5 4
2
2 ...

result:

ok Good Job! (60000 test cases)

Test #6:

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

input:

50000
6
1 6
5 1
4 1
2 1
3 1
6
5 1
3 1
1 2
2 6
4 1
6
4 1
5 1
1 3
2 1
3 6
6
4 6
2 1
5 1
3 1
1 4
6
5 6
1 5
4 1
3 1
2 1
6
4 1
5 6
2 1
1 6
3 1
6
1 6
3 1
2 1
5 2
4 1
6
3 1
5 2
1 2
2 6
4 1
6
4 1
2 3
5 1
1 2
3 6
6
4 6
1 2
3 1
2 4
5 1
6
1 2
5 6
2 5
3 1
4 1
6
1 2
2 6
4 1
3 1
5 6
6
5 3
3 1
1 6
2 1
4 1
6
5 1
3 ...

output:

-1
2
5 4
6 3
2
4 2
6 5
2
2 3
6 5
2
4 2
6 3
2
4 3
5 2
2
3 5
6 4
-1
2
4 5
6 1
2
3 5
6 1
2
3 4
6 1
2
4 3
5 1
2
4 5
6 2
2
5 4
6 1
-1
2
2 5
6 1
2
2 4
6 1
2
4 2
5 1
2
3 5
6 2
2
3 5
6 1
2
2 5
6 1
-1
2
2 3
6 1
2
2 3
5 1
2
2 4
6 3
2
3 4
6 1
2
4 2
6 1
2
2 3
6 1
-1
2
3 2
4 1
2
2 4
5 3
2
4 3
5 1
2
2 4
5 1
2
3 2...

result:

ok Good Job! (50000 test cases)

Test #7:

score: 0
Accepted
time: 45ms
memory: 3936kb

input:

42857
7
3 1
2 1
5 1
6 1
4 1
1 7
7
4 1
1 2
6 1
3 1
2 7
5 1
7
3 7
2 1
1 3
4 1
6 1
5 1
7
4 7
1 4
6 1
5 1
2 1
3 1
7
4 1
1 5
6 1
3 1
5 7
2 1
7
6 7
5 1
2 1
4 1
1 6
3 1
7
6 7
2 1
1 7
3 1
5 1
4 1
7
4 1
5 1
6 2
3 1
2 1
1 7
7
1 2
4 1
6 2
3 1
2 7
5 1
7
6 1
2 3
4 1
5 1
1 2
3 7
7
6 1
4 7
3 1
1 2
5 1
2 4
7
1 2
3 ...

output:

3
5 2
3 4
7 6
3
3 6
4 5
7 1
3
6 4
2 5
7 1
3
2 5
6 3
7 1
3
3 6
4 2
7 1
3
4 2
5 3
7 1
3
5 3
2 4
6 1
3
1 6
4 3
7 5
3
4 5
2 3
7 6
2
6 5
7 4
2
6 5
7 3
2
3 4
7 6
2
3 4
7 5
2
4 3
6 5
3
1 6
4 2
7 5
2
6 5
7 4
3
2 5
3 4
7 6
2
2 6
7 5
2
6 4
7 2
2
5 2
7 4
2
5 4
6 2
3
1 6
2 3
7 5
2
3 6
7 5
2
6 5
7 2
3
5 3
4 2
7 ...

result:

ok Good Job! (42857 test cases)

Test #8:

score: 0
Accepted
time: 44ms
memory: 4024kb

input:

37500
8
5 1
1 8
7 1
4 1
6 1
2 1
3 1
8
3 1
2 8
4 1
6 1
1 2
7 1
5 1
8
3 8
4 1
2 1
1 3
6 1
5 1
7 1
8
1 4
5 1
7 1
6 1
4 8
2 1
3 1
8
1 5
5 8
4 1
2 1
3 1
7 1
6 1
8
1 6
3 1
4 1
2 1
5 1
6 8
7 1
8
1 7
6 1
4 1
3 1
5 1
7 8
2 1
8
5 1
4 1
2 1
1 8
6 1
7 8
3 1
8
1 8
4 1
2 1
5 1
7 2
3 1
6 1
8
6 1
5 1
7 2
4 1
2 8
3 ...

output:

-1
3
6 4
3 5
8 7
3
6 2
4 7
8 5
3
6 7
5 3
8 2
3
3 2
4 6
8 7
3
2 4
3 7
8 5
3
3 4
6 2
8 5
3
2 4
5 3
7 6
3
5 6
4 7
8 3
-1
3
7 6
5 4
8 1
3
3 7
5 6
8 1
3
4 3
6 7
8 1
3
5 7
4 3
8 1
3
3 5
4 6
8 1
3
6 5
4 3
7 1
3
6 5
2 7
8 4
3
5 4
6 7
8 1
-1
3
6 2
5 7
8 1
3
6 4
7 2
8 1
3
7 5
4 2
8 1
3
5 6
4 2
8 1
3
4 2
5 6
7...

result:

ok Good Job! (37500 test cases)

Test #9:

score: 0
Accepted
time: 24ms
memory: 4124kb

input:

300
1000
815 567
883 63
783 506
485 779
142 248
218 214
617 238
481 567
20 203
119 212
953 179
44 830
427 156
97 916
763 172
484 512
916 21
417 958
408 257
238 634
891 213
90 208
394 56
758 819
435 26
636 718
880 212
458 662
123 212
239 156
548 314
852 436
722 828
271 429
493 27
910 421
354 143
956 ...

output:

-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
...

result:

ok Good Job! (300 test cases)

Test #10:

score: 0
Accepted
time: 43ms
memory: 13500kb

input:

3
100000
21854 12448
41900 78683
26279 40303
96957 78925
50096 72644
14704 14585
44195 23551
3290 42026
25017 64658
4593 10713
29129 13530
62892 43675
23793 13329
97502 10091
78766 44620
59301 95815
25781 93162
12231 24059
77637 66545
53889 84545
65596 58277
31337 87701
29049 43837
99301 2408
41562 ...

output:

-1
-1
-1

result:

ok Good Job! (3 test cases)

Test #11:

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

input:

1
300000
264872 86229
63995 164384
180167 260692
169708 168083
149321 50390
177160 60629
178607 170744
176734 60911
231963 17936
49668 90468
205798 261858
7645 12727
240590 1798
8446 139678
32309 208096
226620 119112
204528 63548
110330 250899
219366 144880
258130 23221
203423 40874
45194 78650
1571...

output:

-1

result:

ok Good Job! (1 test case)

Test #12:

score: 0
Accepted
time: 52ms
memory: 4192kb

input:

30000
10
1 6
4 8
7 5
6 10
3 1
8 2
2 9
9 10
5 9
10
3 7
2 6
6 9
1 6
4 10
9 10
5 6
7 2
8 3
10
8 10
6 3
2 1
3 2
1 10
7 4
5 2
9 8
4 9
10
4 1
6 8
2 10
9 10
7 2
5 2
8 7
1 6
3 1
10
6 2
3 6
9 6
7 10
8 2
2 1
5 3
1 4
4 10
10
2 8
3 6
5 7
7 8
1 6
8 10
9 2
4 6
6 10
10
1 5
4 3
6 4
7 1
2 3
5 9
8 2
3 10
9 6
10
2 7
5...

output:

2
4 3
7 9
2
5 4
8 1
2
5 6
7 2
3
4 3
5 1
9 2
3
6 5
8 7
9 2
3
3 4
5 1
9 8
2
3 8
10 7
2
5 2
9 3
3
9 2
4 3
10 5
3
6 4
2 3
7 1
3
1 9
8 5
10 3
2
5 4
6 8
3
2 8
4 5
10 3
3
7 1
5 10
8 4
3
6 5
8 3
9 2
4
7 1
8 5
6 3
9 10
3
5 7
8 3
9 1
3
7 3
4 1
5 2
3
3 4
9 7
10 6
3
6 1
2 10
8 9
2
1 4
7 6
3
2 1
4 8
5 6
3
1 4
8 ...

result:

ok Good Job! (30000 test cases)

Test #13:

score: 0
Accepted
time: 51ms
memory: 4236kb

input:

3000
99
79 72
72 6
1 90
94 89
31 28
59 89
78 85
73 35
57 45
45 99
38 57
11 70
26 14
92 13
35 52
30 18
61 15
29 86
60 22
5 57
17 84
36 84
70 37
10 86
80 91
34 87
65 8
42 88
87 25
88 43
8 47
33 78
62 47
15 73
83 77
24 33
97 38
23 77
20 34
85 32
55 22
63 10
66 30
39 5
28 62
89 15
37 49
16 75
74 66
47 4...

output:

29
60 55
16 22
26 27
76 14
95 1
53 88
56 43
83 23
24 41
82 11
33 69
77 78
85 48
3 93
19 79
65 80
94 59
61 89
17 36
74 84
51 40
81 30
9 52
7 50
8 63
44 47
67 4
58 45
97 57
30
6 91
14 74
87 42
22 57
53 66
39 97
51 60
38 95
30 80
10 81
41 56
15 61
9 77
59 25
13 29
47 88
8 11
34 71
1 26
98 62
40 63
4 93...

result:

ok Good Job! (3000 test cases)

Test #14:

score: 0
Accepted
time: 79ms
memory: 16236kb

input:

3
100000
83890 7467
75295 89651
4062 83955
60269 26734
58357 54437
22200 48174
87338 74094
86583 7977
1136 84701
34461 47665
82355 28324
32412 16170
5270 73823
37181 86410
22445 59139
27816 47294
540 79932
73768 41579
14577 92388
31765 75494
49018 24756
57215 90140
86438 22430
3974 15829
59053 22856...

output:

28400
35625 81036
85026 11405
94848 45673
47792 15524
45412 26186
19116 80125
60021 40504
57102 84667
6477 85620
81861 97938
657 52088
60419 8755
87871 33187
1838 79481
28046 63807
53510 44429
49755 72884
39790 70981
45328 88882
16668 39476
86875 68047
11676 43131
77263 14906
96527 18444
26458 81776...

result:

ok Good Job! (3 test cases)

Test #15:

score: 0
Accepted
time: 97ms
memory: 38672kb

input:

1
300000
30683 45175
202516 82288
209967 151196
160370 148366
36159 83057
277846 18399
58641 259342
220025 290125
299864 69137
276256 59853
163412 98854
211643 219357
45085 203080
17046 259484
175009 201826
220413 253746
280406 235850
107084 114346
6196 164024
149354 242637
8884 201047
102007 121900...

output:

85153
73865 63234
136386 126103
267776 241539
37772 179454
246801 242517
152151 63713
176354 147645
105380 77627
114575 204776
165310 285535
200396 161380
10847 63256
13090 288159
125500 31727
246289 155980
40233 289167
272186 108476
227828 202986
21343 173061
260506 3661
115277 274043
7710 21549
11...

result:

ok Good Job! (1 test case)

Test #16:

score: 0
Accepted
time: 105ms
memory: 93644kb

input:

1
300000
98923 244101
265083 199522
178854 130825
233559 275176
51110 162632
100454 144508
203138 94733
112144 116959
221684 184011
122356 174675
240265 56410
83529 213874
174757 59833
87918 98194
231431 71105
145121 105056
205429 60598
114418 168280
249115 124674
160102 183789
27460 854
72909 12628...

output:

1
253307 250509

result:

ok Good Job! (1 test case)

Test #17:

score: 0
Accepted
time: 95ms
memory: 39780kb

input:

1
300000
51552 258960
174014 1763
298103 122466
80039 102474
90881 123355
37816 182571
209856 199049
68745 246931
231305 147333
256217 77569
277988 49579
174054 154053
74959 60605
281490 278569
131850 7894
138112 208044
207380 67110
1334 204240
117581 152706
90835 142455
54402 68306
264004 244539
99...

output:

85191
233823 163442
274077 120542
160326 171984
215209 208620
277542 40764
150489 217045
9022 267291
272743 115712
71980 206495
88837 253284
64870 203318
154640 15843
64144 225171
146640 12330
98937 233593
294951 199280
110805 262913
191641 187335
45112 290311
179092 248683
36564 241822
194126 16544...

result:

ok Good Job! (1 test case)

Test #18:

score: 0
Accepted
time: 86ms
memory: 16356kb

input:

3
100000
43104 39350
58310 72159
1910 78304
366 33335
3494 5822
948 92660
11882 15212
69203 4346
45739 21275
65867 55409
61694 88089
71479 40349
35887 88786
52148 61962
82180 65178
93823 47701
43116 75915
86963 34539
50583 74229
40562 91601
12139 88394
52559 57679
25481 60170
31207 85832
4201 92027
...

output:

28431
74533 17703
76252 79280
40718 10905
57194 76415
12029 94314
61637 94998
93447 7151
30807 97813
36499 83990
32623 8216
49827 4348
48788 76399
3253 83977
67127 15526
61000 4099
56943 52304
51636 56356
39317 68190
64918 941
33446 87986
25295 1158
50257 91459
89602 33152
74476 41723
88262 20493
20...

result:

ok Good Job! (3 test cases)

Test #19:

score: 0
Accepted
time: 94ms
memory: 93008kb

input:

1
299999
153306 123584
100430 137396
151712 125355
180598 178628
178522 156317
6811 124889
41530 107031
35237 104587
235884 157908
130785 274651
141969 58315
203297 225663
192833 74643
223470 99863
272704 178999
163551 250862
133718 39962
199271 24737
159107 66084
139074 91207
229404 47856
273704 12...

output:

1
211007 141316

result:

ok Good Job! (1 test case)

Test #20:

score: 0
Accepted
time: 30ms
memory: 3904kb

input:

3000
100
9 37
30 16
87 75
66 20
89 79
78 72
48 5
62 100
61 95
69 93
23 86
18 48
32 24
91 43
54 93
92 63
15 7
6 92
67 35
65 89
8 26
21 98
1 65
40 85
36 41
77 39
56 44
69 70
46 67
80 60
94 96
14 36
34 99
84 62
22 74
23 79
46 19
27 51
11 14
18 70
85 8
73 6
97 40
71 83
41 98
61 87
2 90
45 5
20 44
17 81
...

output:

1
25 2
1
82 31
1
82 48
1
95 51
1
88 58
1
51 31
1
98 14
1
95 33
1
41 29
1
80 22
1
90 11
1
57 1
1
75 7
1
80 25
1
60 26
1
53 14
1
63 1
1
17 7
1
8 1
1
100 33
1
54 50
1
57 11
1
88 30
1
99 28
1
69 23
1
87 34
1
32 8
1
94 77
1
70 30
1
74 4
1
75 34
1
99 71
1
99 23
1
81 5
1
34 29
1
46 26
1
56 27
1
72 19
1
65 ...

result:

ok Good Job! (3000 test cases)

Test #21:

score: 0
Accepted
time: 121ms
memory: 73596kb

input:

1
299999
123584 153306
137396 100430
114758 125355
180598 13155
156317 178522
124889 6811
41530 27377
104587 35237
157908 235884
130785 44576
141969 129416
225663 203297
120350 74643
20300 99863
295855 178999
198163 250862
133718 148059
24737 199271
66084 159107
91207 139074
229404 89529
273704 1565...

output:

149999
17055 43304
35439 188599
107518 58512
230073 186928
35597 98141
287164 149381
115771 200178
209283 116186
36147 159889
88779 244709
93170 136934
107491 224861
152777 199032
146413 135168
269441 28926
104131 18334
20526 164775
8029 26186
200589 60522
288620 120471
195883 108039
233945 185748
3...

result:

ok Good Job! (1 test case)

Test #22:

score: 0
Accepted
time: 71ms
memory: 10936kb

input:

10
29999
29014 14470
26823 2725
13020 1832
9002 521
22160 26983
2964 2174
20830 22020
19201 4850
19060 10457
23936 2163
22700 29072
28735 4318
15942 8678
10533 9761
8946 29013
12121 555
14303 26560
18146 20485
16984 345
22717 347
21795 27399
20125 489
6200 24303
21419 17994
28274 28769
28326 25399
1...

output:

14999
23907 28453
2920 15770
10326 4578
27593 24984
21879 1186
23588 8661
22099 6245
11850 26588
27395 27247
10476 753
12794 18957
22591 15447
17765 22536
19499 17275
16647 445
27680 25765
16086 16011
13029 28687
22326 2733
8253 1258
8517 18060
19084 14385
3375 1407
10732 19322
26691 12939
2893 1455...

result:

ok Good Job! (10 test cases)

Test #23:

score: 0
Accepted
time: 93ms
memory: 43920kb

input:

1
299999
258553 127891
200368 10642
134395 33327
66807 64283
298570 239432
106569 74919
101275 256095
215172 160205
258907 145255
294970 120844
120747 17359
231598 191111
103394 179995
276483 13575
153143 236649
32255 165538
13973 180565
114480 173795
280161 260850
239991 6207
137809 102438
160694 2...

output:

149999
153893 172067
123357 252262
102309 48585
165236 229292
54641 254362
4408 2720
45799 198706
37830 47919
242515 80774
74086 86001
116153 131214
4478 57250
163896 124803
86193 107183
15309 220731
38479 255942
2427 208708
291564 75869
123774 175911
19041 248670
274127 3615
1180 178660
28601 19153...

result:

ok Good Job! (1 test case)

Test #24:

score: 0
Accepted
time: 61ms
memory: 8056kb

input:

10
29999
21547 280
5396 29060
21129 24483
1948 5302
5994 20221
12679 20525
23088 2218
24614 17646
9854 7760
23220 29541
9824 25475
9144 8680
17400 22930
3583 13702
14210 16949
4145 4827
4927 15200
5195 13939
23998 23812
20779 22916
19383 23442
29184 11705
12676 19405
4120 11612
24747 1107
25087 1775...

output:

14999
27491 25885
4902 1111
26523 24462
4714 12880
23313 21167
7519 5466
17307 11137
15984 9808
15616 11412
4044 22221
28389 6288
626 20542
12338 28104
23662 866
29499 9665
14070 12156
1647 11605
14888 29323
27585 7062
22845 13260
22032 24426
24041 29139
15867 14536
21322 1534
25701 17389
15022 1255...

result:

ok Good Job! (10 test cases)

Test #25:

score: 0
Accepted
time: 53ms
memory: 4228kb

input:

27000
11
3 5
11 3
2 3
7 1
10 8
8 6
9 8
3 1
8 4
1 8
11
3 1
1 2
5 6
11 1
6 9
10 6
4 8
1 5
1 7
5 8
11
1 3
6 11
4 6
10 1
1 8
2 6
7 11
1 9
11 1
6 5
11
3 7
6 8
11 3
9 6
3 8
6 4
1 8
5 9
10 3
2 9
11
8 5
6 8
11 5
8 2
7 11
4 5
8 9
3 10
3 11
8 1
11
7 3
2 3
9 1
8 10
8 1
9 5
3 9
4 1
6 8
11 3
11
8 5
8 1
6 8
11 8
...

output:

5
9 6
10 4
7 8
5 1
11 2
5
5 4
9 10
1 6
3 7
11 2
5
4 5
11 2
1 7
3 9
10 8
5
5 2
4 9
1 6
7 8
11 10
5
9 2
6 1
4 8
7 5
10 11
5
10 6
4 8
5 1
7 9
11 2
5
6 1
4 2
10 9
5 3
11 7
5
4 5
6 10
8 1
3 2
11 9
5
9 4
1 2
11 8
6 7
10 3
5
6 5
10 9
7 2
3 4
11 1
5
2 1
8 3
6 7
9 10
11 4
5
10 4
5 6
2 1
9 7
11 8
5
2 10
9 3
6...

result:

ok Good Job! (27000 test cases)

Test #26:

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

input:

30000
6
5 3
6 2
4 1
1 3
2 1
4
4 2
1 4
1 3
11
9 1
10 11
11 3
11 9
4 6
3 7
2 11
1 6
1 5
8 9
17
6 15
10 7
8 17
13 11
3 8
15 4
16 3
12 4
15 10
2 6
6 9
5 13
5 14
2 1
10 5
8 15
14
14 5
1 6
12 4
8 14
5 9
13 5
4 9
1 13
7 13
5 3
11 14
5 10
2 13
12
3 6
5 1
8 3
12 2
12 7
5 4
9 4
11 10
6 12
12 5
4 11
17
15 11
1...

output:

2
4 5
6 1
1
3 2
4
5 4
8 1
2 9
10 7
6
8 16
9 1
14 11
7 5
6 10
17 12
5
8 11
3 14
2 6
10 7
12 5
4
2 8
1 7
9 5
10 4
6
7 1
4 3
12 11
14 10
2 8
13 9
5
2 11
5 4
10 3
7 1
12 9
-1
2
3 1
4 5
4
3 8
7 4
9 6
11 2
3
9 5
3 1
10 2
4
11 3
8 2
7 6
13 10
3
3 2
6 1
10 9
1
4 2
2
2 1
3 4
-1
1
3 1
1
3 2
3
3 7
4 1
10 5
4
3...

result:

ok Good Job! (30000 test cases)

Test #27:

score: 0
Accepted
time: 67ms
memory: 32980kb

input:

1
253253
50359 179100
159762 56963
156480 129546
194694 165531
171829 15612
8904 244239
167203 79755
59278 193676
6064 179420
93089 11873
208865 161063
72803 55831
6938 69443
182632 252034
15492 123140
26694 88239
59982 95642
209852 233064
205527 137224
222851 93508
28102 71250
250703 159154
54445 3...

output:

84362
193641 30423
170245 40622
194263 703
94855 87378
91075 127195
91705 248184
121193 77440
120104 41551
73750 201448
158560 65252
61228 70583
4270 102113
10478 37422
201375 149236
140122 26013
149675 85149
244077 198332
175 8011
4563 526
44450 136444
57205 230580
2378 134070
84638 22210
44890 499...

result:

ok Good Job! (1 test case)

Test #28:

score: 0
Accepted
time: 53ms
memory: 4588kb

input:

300
1855
1007 450
4 615
1845 844
426 65
1135 79
1020 1386
935 343
936 16
219 1370
1495 131
1409 13
1087 31
63 804
145 1689
1750 1731
694 623
243 626
418 1383
1396 990
1234 385
867 969
779 337
615 732
657 286
1134 1651
269 582
903 1755
478 1384
1360 1060
144 1082
217 1537
185 61
1634 1813
313 876
879...

output:

612
1282 158
526 121
980 1812
959 1732
1206 832
423 692
683 118
1468 1274
1166 514
383 1290
700 9
1378 1513
1614 1605
727 382
1814 393
1017 1720
1647 859
1764 1202
188 920
1498 1120
1021 508
1753 295
724 1598
992 177
864 1342
1030 81
160 1159
88 644
56 516
652 97
591 15
1016 899
1349 106
569 993
438...

result:

ok Good Job! (300 test cases)

Test #29:

score: 0
Accepted
time: 71ms
memory: 36712kb

input:

1
297722
2542 280838
47066 211579
45334 161254
161254 3387
161254 81700
286925 161254
188708 161254
163323 239454
177641 142518
161254 141588
161254 289112
161254 132883
161254 264103
161254 7898
131553 35341
274424 85972
161254 111454
161254 245526
195088 87188
83391 252892
74347 144981
248942 2949...

output:

49500
214202 260126
223340 245419
17459 20355
127412 66384
191933 28747
5838 19351
264671 169492
229938 226736
287282 97373
91960 7201
3176 242260
134538 267756
45636 170102
63590 253220
109025 293479
9845 243996
63335 130864
80921 29739
226011 115665
184507 269056
131820 255081
3449 113401
48359 14...

result:

ok Good Job! (1 test case)

Test #30:

score: 0
Accepted
time: 65ms
memory: 36712kb

input:

1
297687
114063 114325
61315 256781
17004 254276
279378 173674
50685 133866
254276 270764
254276 168958
160573 254276
183000 144763
254276 41646
138547 226105
254276 62934
250757 284583
254276 147160
254276 62486
163839 23030
246684 80048
219153 38897
254276 184254
297273 295022
146005 254276
229491...

output:

74500
165998 160774
68234 131519
258631 293857
170486 277302
44733 18769
151548 39812
38418 220104
12355 199038
191359 45006
145756 262597
81896 107174
139521 11416
182108 271842
54936 112085
27303 244370
281270 28441
114169 146145
218041 171279
63686 124834
14692 283984
40965 8858
281420 129733
207...

result:

ok Good Job! (1 test case)

Test #31:

score: 0
Accepted
time: 51ms
memory: 39476kb

input:

1
298467
24310 131068
270342 284416
110818 163791
140749 270342
200509 156894
128257 270342
286273 39457
230236 150598
48559 18558
271934 270342
270342 221456
270342 240611
146171 270342
142089 270342
265273 37099
4824 207615
273677 270342
270342 233942
131877 270342
282024 14594
58550 270342
3225 1...

output:

99500
29667 275698
184623 168826
108251 175741
221699 266132
264566 288286
98659 224267
274099 200572
225317 1370
104800 41883
133683 32713
108538 279372
249242 200371
287403 101216
229641 252340
40271 101077
156259 23657
264100 23594
44139 249919
24562 254646
133443 57209
62852 216019
142798 179980...

result:

ok Good Job! (1 test case)

Test #32:

score: 0
Accepted
time: 38ms
memory: 34136kb

input:

1
299096
43798 64829
64829 22308
25723 64829
125491 64829
132554 64829
64829 31091
82698 64829
161922 64829
64829 48363
153172 64829
198568 64829
64829 68075
246874 64829
64829 122620
64829 237999
64829 257438
44676 64829
64829 295759
64829 45750
64829 17755
195879 64829
86788 64829
172696 64829
648...

output:

-1

result:

ok Good Job! (1 test case)

Test #33:

score: 0
Accepted
time: 68ms
memory: 44244kb

input:

1
299097
55978 208819
55978 222666
55978 118386
176498 55978
177724 55978
55978 286400
7823 55978
55978 86011
258404 55978
55978 127466
55978 52857
34668 55978
31665 55978
55978 160320
55978 239002
290038 55978
55978 36827
55978 280050
55978 104777
55978 158847
52282 55978
206198 55978
55978 58412
1...

output:

149548
257132 197746
280431 283255
266001 105491
255180 96231
283182 34528
58809 280524
12267 288146
288565 152293
122263 199576
265260 238077
292878 296354
269524 81312
143614 276110
36649 45649
137718 228585
36265 275568
281461 173733
167482 249230
28515 266671
183746 215839
257279 135939
197056 1...

result:

ok Good Job! (1 test case)

Test #34:

score: 0
Accepted
time: 48ms
memory: 44096kb

input:

1
299097
166438 82625
82625 128838
82625 141580
83485 82625
82625 210941
82625 40444
82625 45514
112980 82625
82625 8971
82625 240680
53717 82625
82625 243508
275918 82625
82625 214884
80291 82625
82625 244056
278345 82625
82625 50552
82625 84626
234287 82625
227857 82625
82625 282783
82625 169441
1...

output:

149548
272810 284438
168533 1773
44830 45536
89247 234754
224454 26496
175752 253553
97418 80862
272599 161897
181710 252048
178092 195304
94161 130395
90886 89984
102793 141496
152714 18763
180433 69713
233532 64627
47059 143600
177876 3519
270112 54312
246221 41739
94801 167394
260929 213166
48530...

result:

ok Good Job! (1 test case)

Test #35:

score: 0
Accepted
time: 59ms
memory: 44620kb

input:

1
299097
260330 58892
133029 58892
58892 172471
42729 58892
58892 26074
58892 99490
58892 3974
59464 58892
58892 186328
119256 58892
225649 58892
162394 58892
58892 128284
58892 215895
281775 58892
275533 58892
58892 149488
167782 58892
22771 58892
58892 63000
58892 9677
83128 58892
58892 121018
588...

output:

149548
153018 13893
60280 156195
2182 282301
154097 233607
36172 178422
75835 171123
54263 148250
296959 270356
73847 39979
181257 95981
88036 13333
290396 85091
104163 150819
61461 138126
82389 135359
3037 265411
162380 138907
29852 285976
136970 52265
43588 124756
77938 190790
29923 169468
176615 ...

result:

ok Good Job! (1 test case)

Test #36:

score: 0
Accepted
time: 44ms
memory: 7500kb

input:

10
29462
10852 16001
15495 6444
21756 23481
23752 13053
21560 13691
9711 23194
24917 23476
13053 18916
5 8995
17585 23447
644 13053
27831 13053
22383 10656
15443 21538
10814 3308
4868 2089
23555 13053
25895 13053
12345 13893
13053 14041
13053 8611
4444 15324
23999 27186
27037 13053
23208 22273
22940...

output:

4950
22368 4934
29168 4371
8939 11001
27302 3913
18192 7880
398 23175
21877 25949
23403 7269
6179 25550
5435 8434
4346 8233
22132 6123
3924 12847
27871 3421
1221 22728
18843 6867
28580 14595
11543 18443
14504 8517
26408 19903
10440 9955
6211 14539
22526 9623
4430 13037
16470 6696
10613 1245
4168 193...

result:

ok Good Job! (10 test cases)

Test #37:

score: 0
Accepted
time: 27ms
memory: 4520kb

input:

100
2959
1769 2187
2304 2429
2635 1931
271 2342
1671 153
707 1154
2597 1668
1048 204
1242 1301
926 2013
1557 2752
488 1893
613 1809
1416 2395
120 1179
982 321
2686 86
2313 2009
878 848
1447 2207
728 1885
2812 1683
1290 1627
2701 135
933 1099
1719 393
2355 2519
1368 384
311 1080
823 1642
459 2670
266...

output:

50
1967 13
2879 2535
2624 945
1131 2596
1500 2660
2231 1854
1916 986
2273 1216
1400 957
950 2515
2614 1384
1865 651
486 1879
2397 1903
804 31
2300 1191
1228 1477
234 2235
1766 2066
1984 2377
1428 1457
2525 2193
1885 2329
655 340
2657 2182
1618 2340
1226 2178
2185 579
459 1205
2634 1713
1886 126
455 ...

result:

ok Good Job! (100 test cases)

Test #38:

score: 0
Accepted
time: 30ms
memory: 4076kb

input:

1000
294
200 192
200 46
43 256
85 47
98 12
127 200
111 127
257 124
168 32
45 274
197 49
200 27
144 38
156 256
148 202
200 80
31 248
35 66
282 128
60 200
189 37
88 54
238 280
44 245
46 263
220 53
144 200
200 55
58 184
200 153
84 173
31 284
24 170
200 211
22 244
232 242
200 208
188 26
139 154
251 104
...

output:

48
200 140
216 222
85 254
215 260
267 6
291 94
40 3
141 188
278 32
177 133
285 261
74 116
122 259
207 73
205 244
135 93
281 279
51 142
193 165
114 150
266 276
5 176
164 92
155 231
105 9
206 103
97 63
62 50
173 235
21 243
13 169
182 69
125 16
8 258
11 172
191 242
89 224
34 240
2 7
118 44
124 78
208 4...

result:

ok Good Job! (1000 test cases)

Test #39:

score: 0
Accepted
time: 98ms
memory: 42960kb

input:

1
299997
253129 238438
256990 147794
56683 265606
62100 74831
58006 231602
227120 138613
72936 16010
271383 221839
110579 31739
13864 11106
196180 159069
78858 61661
262511 279235
45738 172410
2512 6066
144552 29625
194524 184023
196218 229474
256817 33532
166763 175023
188106 91596
93278 158818
280...

output:

149998
8364 179263
171884 89965
183635 231660
35421 200875
172947 91527
102115 296526
97781 286719
43537 137064
200088 72076
99153 104670
78383 167290
230198 104781
196189 278568
82812 45806
200983 234818
104892 154049
258745 65095
272312 157960
141409 9536
286648 136608
184926 173012
78691 231179
5...

result:

ok Good Job! (1 test case)

Test #40:

score: 0
Accepted
time: 94ms
memory: 43968kb

input:

1
299995
251405 13382
21412 273614
170998 239060
142811 89087
163686 80590
54073 23173
29717 93866
155059 150414
171846 663
218307 10405
252692 83378
131202 289721
52385 252854
293096 280491
216796 237285
242784 243233
52784 6922
68312 26488
205497 147202
65036 297840
58601 67107
164525 57839
167843...

output:

149997
208277 36504
291005 103293
63341 285890
228702 95072
153874 286094
84233 109006
131014 147091
212941 246573
7106 126159
252001 261209
7722 134967
1517 125949
61167 189592
118799 11507
46804 105226
51376 57210
11479 73696
59746 73938
289650 18417
171909 223128
132735 200275
118440 1465
29592 8...

result:

ok Good Job! (1 test case)

Test #41:

score: 0
Accepted
time: 93ms
memory: 42248kb

input:

1
299993
5467 110867
249637 87281
209055 74176
170317 272027
19928 97403
158898 19368
120942 93881
150886 63314
221175 188504
125295 79790
241291 263489
258417 196595
157362 130040
163372 85682
261036 45856
257946 163512
54262 17552
251249 14029
213457 65927
265238 36030
4861 71772
159755 111439
375...

output:

149996
204012 38771
85296 192918
89703 26149
285468 130683
102102 157162
103060 92869
195375 49273
177817 95709
236236 147527
66255 260060
177599 71843
294963 47687
297377 55062
8418 49678
184801 279143
63303 104648
299490 83899
31054 27686
38446 50357
228713 283042
3762 196195
158306 269749
183732 ...

result:

ok Good Job! (1 test case)

Test #42:

score: 0
Accepted
time: 73ms
memory: 44112kb

input:

1
299991
248982 174625
105559 244297
35265 128781
206509 158409
13863 41023
249166 59270
215265 188850
218206 113138
126624 205065
241101 283870
31511 34427
237845 182965
134293 221193
214509 104965
67564 158810
198261 216053
115921 200242
245392 107170
62619 285117
48060 132083
166094 84748
150023 ...

output:

149995
115014 112477
105363 26337
274965 232917
278819 141892
164707 212113
243178 273429
249697 5016
83258 260516
19014 263118
35375 123252
224878 112323
123462 199630
82243 268894
111395 281175
256375 152678
222087 101646
47245 57991
258690 59783
240162 65202
217549 35987
187024 202181
83078 26423...

result:

ok Good Job! (1 test case)

Test #43:

score: 0
Accepted
time: 100ms
memory: 42628kb

input:

1
299999
185541 176688
252501 252009
201515 181336
174664 10052
235206 78841
271650 240453
177704 41444
30343 236755
136584 224074
123830 176470
119252 294416
176341 111829
241834 52983
35945 184402
68227 225761
146133 151540
249663 70136
156441 42951
95322 152829
259090 103376
84766 152588
150129 1...

output:

149999
41549 100226
80046 223007
73646 225123
46530 122246
71160 153244
71465 224577
230367 228750
137729 274464
73231 37706
109682 17485
173974 182022
141271 110267
117421 201993
77870 145157
135972 54187
21119 244181
178956 257489
214311 279059
256585 284774
292795 286677
117676 37801
77761 24225
...

result:

ok Good Job! (1 test case)

Test #44:

score: 0
Accepted
time: 93ms
memory: 42072kb

input:

1
299997
46586 268160
120257 162918
155586 87070
233774 236522
195573 139640
213343 184602
26338 174317
236326 103114
246267 241694
166020 217647
73806 217138
115817 291894
296219 281396
231138 217264
57086 215561
296205 295067
174916 36910
262907 177629
268640 277927
33944 172724
299448 298104
2913...

output:

149998
73387 18515
121133 106778
70828 247346
28941 267941
196549 275441
6296 419
75336 102084
36378 54986
102884 151927
202105 168662
275586 216972
287467 279250
109173 92035
56116 242435
79213 147866
127446 192634
123898 130223
52810 27095
267150 196251
202321 278570
252877 278840
14703 133083
144...

result:

ok Good Job! (1 test case)

Test #45:

score: 0
Accepted
time: 55ms
memory: 4456kb

input:

100
2997
1842 108
983 1626
2076 2280
1960 2673
2029 1154
1506 836
144 1843
173 1775
322 1567
1632 1092
2608 2819
2737 2888
24 2046
400 2487
2396 2569
2072 1695
2223 2237
2175 592
694 2236
2523 2322
2211 2325
2196 2888
1509 1586
2376 2272
2063 2310
2471 2612
2530 2101
1618 25
1830 1404
2646 743
2256 ...

output:

1498
52 186
206 1777
744 2244
674 2393
544 1328
1439 1672
1495 535
514 308
715 1542
1142 1604
2032 2039
162 1456
1058 1528
380 1556
1355 1592
980 1895
2174 2345
2171 2410
2409 2601
464 1375
1049 1514
1128 223
916 1100
1197 367
1828 2100
1985 2200
2494 2699
369 309
1321 560
407 566
1313 1625
135 1741...

result:

ok Good Job! (100 test cases)

Extra Test:

score: 0
Extra Test Passed