QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#600367#9420. Find Yourselfhos_lyricAC ✓1241ms515080kbC++147.7kb2024-09-29 16:07:432024-09-29 16:07:44

Judging History

This is the latest submission verdict.

  • [2024-09-29 16:07:44]
  • Judged
  • Verdict: AC
  • Time: 1241ms
  • Memory: 515080kb
  • [2024-09-29 16:07:43]
  • Submitted

answer

#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using namespace std;

using Int = long long;

template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
#define COLOR(s) ("\x1b[" s "m")


// gg: bipartite graph between {vertex} and {biconnected component}
//   (|gg| - n) biconnected components
//   isolated point: not regarded as biconnected component (==> isolated in gg)
// f: DFS out-forest
// ess: edges in biconnected component
//   (u, v) with dis[u] <= dis[v]
//   self-loop at isolated point: not included in ess
struct Biconnected {
  int n, m;
  vector<vector<int>> g, f, gg;
  vector<vector<pair<int, int>>> ess;
  vector<int> par, rs;
  int zeit;
  vector<int> dis, fin, low;

  Biconnected() {}
  explicit Biconnected(int n_) : n(n_), m(0), g(n_) {}
  void ae(int u, int v) {
    ++m;
    assert(0 <= u); assert(u < n);
    assert(0 <= v); assert(v < n);
    g[u].push_back(v);
    if (u != v) g[v].push_back(u);
  }

  int stackVLen, stackELen;
  vector<int> stackV;
  vector<pair<int, int>> stackE;
  vector<int> cntPar;
  void dfs(int u) {
    stackV[stackVLen++] = u;
    dis[u] = low[u] = zeit++;
    for (const int v : g[u]) {
      if (par[u] == v && !cntPar[u]++) continue;
      if (~dis[v]) {
        if (dis[u] >= dis[v]) stackE[stackELen++] = std::make_pair(v, u);
        if (low[u] > dis[v]) low[u] = dis[v];
      } else {
        f[u].push_back(v);
        par[v] = u;
        rs[v] = rs[u];
        const int stackEPos = stackELen;
        stackE[stackELen++] = std::make_pair(u, v);
        dfs(v);
        if (low[u] > low[v]) low[u] = low[v];
        if (dis[u] <= low[v]) {
          const int x = gg.size();
          gg.emplace_back();
          ess.emplace_back();
          for (; ; ) {
            const int w = stackV[--stackVLen];
            gg[w].push_back(x);
            gg[x].push_back(w);
            if (w == v) break;
          }
          gg[u].push_back(x);
          gg[x].push_back(u);
          for (; stackELen > stackEPos; ) ess[x].push_back(stackE[--stackELen]);
        }
      }
    }
    fin[u] = zeit;
  }
  void build() {
    f.assign(n, {});
    gg.assign(n, {});
    ess.assign(n, {});
    par.assign(n, -1);
    rs.assign(n, -1);
    zeit = 0;
    dis.assign(n, -1);
    fin.assign(n, -1);
    low.assign(n, -1);
    stackV.resize(n);
    stackE.resize(m);
    cntPar.assign(n, 0);
    for (int u = 0; u < n; ++u) if (!~dis[u]) {
      stackVLen = stackELen = 0;
      rs[u] = u;
      dfs(u);
    }
  }

  // Returns true iff u is an articulation point
  //   <=> # of connected components increases when u is removed.
  inline bool isArt(int u) const {
    return (gg[u].size() >= 2);
  }

  // Returns w s.t. w is a child of u and a descendant of v in the DFS forest.
  // Returns -1 instead if v is not a proper descendant of u
  //   O(log(deg(u))) time
  int dive(int u, int v) const {
    if (dis[u] < dis[v] && dis[v] < fin[u]) {
      int j0 = 0, j1 = f[u].size();
      for (; j0 + 1 < j1; ) {
        const int j = (j0 + j1) / 2;
        ((dis[f[u][j]] <= dis[v]) ? j0 : j1) = j;
      }
      return f[u][j0];
    } else {
      return -1;
    }
  }
  // Returns true iff there exists a v-w path when u is removed.
  //   O(log(deg(u))) time
  bool isStillReachable(int u, int v, int w) const {
    assert(0 <= u); assert(u < n);
    assert(0 <= v); assert(v < n);
    assert(0 <= w); assert(w < n);
    assert(u != v);
    assert(u != w);
    if (rs[v] != rs[w]) return false;
    if (rs[u] != rs[v]) return true;
    const int vv = dive(u, v);
    const int ww = dive(u, w);
    if (~vv) {
      if (~ww) {
        return (vv == ww || (dis[u] > low[vv] && dis[u] > low[ww]));
      } else {
        return (dis[u] > low[vv]);
      }
    } else {
      if (~ww) {
        return (dis[u] > low[ww]);
      } else {
        return true;
      }
    }
  }
};

////////////////////////////////////////////////////////////////////////////////


vector<int> uf;
int root(int u) {
  return (uf[u] < 0) ? u : (uf[u] = root(uf[u]));
}
bool connect(int u, int v) {
  u = root(u);
  v = root(v);
  if (u == v) return false;
  if (uf[u] > uf[v]) swap(u, v);
  uf[u] += uf[v];
  uf[v] = u;
  return true;
}

int N, M;
vector<int> A, B;

bool solve() {
  // deg2: # adj non-leaf
  vector<int> deg(N, 0), deg2(N, 0);
  for (int i = 0; i < M; ++i) {
    ++deg[A[i]];
    ++deg[B[i]];
  }
  for (int i = 0; i < M; ++i) {
    if (deg[B[i]] >= 2) ++deg2[A[i]];
    if (deg[A[i]] >= 2) ++deg2[B[i]];
  }
  
  Biconnected bic(N);
  for (int i = 0; i < M; ++i) {
    bic.ae(A[i], B[i]);
  }
  bic.build();
  uf.assign(N << 1, -1);
  for (int x = N; x < (int)bic.gg.size(); ++x) {
    const auto &us = bic.gg[x];
    const auto &es = bic.ess[x];
    if (us.size() == 2) {
      // edge
      continue;
    }
    for (const int u : us) {
      uf[u << 1] = -1;
      uf[u << 1 | 1] = -1;
    }
    for (const auto &e : es) {
      const int u = e.first;
      const int v = e.second;
      connect(u << 1, v << 1 | 1);
      connect(v << 1, u << 1 | 1);
    }
    vector<int> uss[2] = {};
    for (const int u : us) {
      uss[(root(us[0] << 1) != root(u << 1)) ? 1 : 0].push_back(u);
    }
    if (!(uss[0].size() == 2 || uss[1].size() == 2)) {
      return false;
    }
    if (es.size() != uss[0].size() * uss[1].size()) {
      return false;
    }
    if (uss[0].size() != 2) swap(uss[0], uss[1]);
    assert(uss[0].size() == 2);
    assert(uss[1].size() >= 2);
    // K_{2,>=2}
    
    int cnt[2] = {}, cnt2[2] = {};
    for (int k = 0; k < 2; ++k) {
      const int have = uss[k ^ 1].size();
      for (const int u : uss[k]) {
        if (deg[u] > have) ++cnt[k];
        if (deg2[u] > have) ++cnt2[k];
      }
    }
    // K_{2,>=3}, len=1 haeteru >=2 from ">=3" side
    if (uss[1].size() >= 3 && cnt[1] >= 2) return false;
    // K_{2,2}, len=1 haeteru from each vertex
    if (cnt[0] >= 2 && cnt[1] >= 2) return false;
    // K_{2,2}, len=2 haeteru from each side
    if (cnt2[0] >= 1 && cnt2[1] >= 1) return false;
    // K_{2,2}, len=2 haeteru from each vertex on 1 side, len=1 from the other side
    if (cnt2[0] >= 2 && cnt[1] >= 1) return false;
    if (cnt2[1] >= 2 && cnt[0] >= 1) return false;
  }
  return true;
}

int main() {
  for (int numCases; ~scanf("%d", &numCases); ) { for (int caseId = 1; caseId <= numCases; ++caseId) {
    scanf("%d%d", &N, &M);
    A.resize(M);
    B.resize(M);
    for (int i = 0; i < M; ++i) {
      scanf("%d%d", &A[i], &B[i]);
      --A[i];
      --B[i];
    }
    
    const bool ans = solve();
    puts(ans ? "YES" : "NO");
  }
#ifndef LOCAL
  break;
#endif
  }
  return 0;
}

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

詳細信息

Test #1:

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

input:

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

output:

NO
YES
NO

result:

ok 3 token(s): yes count is 1, no count is 2

Test #2:

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

input:

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

output:

NO
NO
NO
NO
YES
YES
NO
YES
YES
YES

result:

ok 10 token(s): yes count is 5, no count is 5

Test #3:

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

input:

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

output:

YES
NO
YES
YES
NO
YES
NO
YES
YES
YES

result:

ok 10 token(s): yes count is 7, no count is 3

Test #4:

score: 0
Accepted
time: 421ms
memory: 20716kb

input:

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

output:

NO
NO
YES
YES
YES
NO
NO
NO
NO
NO
NO
NO
YES
YES
YES
NO
NO
NO
NO
NO
YES
NO
YES
YES
YES
YES
NO
NO
NO
NO
YES
NO
YES
NO
NO
YES
YES
YES
YES
NO
NO
YES
YES
YES
YES
NO
YES
NO
YES
YES
YES
NO
NO
NO
YES
YES
NO
YES
NO
YES
NO
NO
YES
YES
YES
YES
YES
YES
NO
YES
NO
NO
NO
NO
NO
YES
YES
NO
YES
NO
YES
NO
NO
NO
NO
YES
Y...

result:

ok 5518 token(s): yes count is 3676, no count is 1842

Test #5:

score: 0
Accepted
time: 431ms
memory: 22804kb

input:

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

output:

NO
NO
YES
YES
YES
NO
NO
NO
NO
NO
YES
YES
NO
YES
YES
YES
YES
YES
YES
NO
YES
NO
YES
YES
NO
NO
YES
YES
YES
NO
NO
YES
YES
NO
NO
YES
YES
NO
YES
YES
NO
YES
YES
YES
NO
NO
NO
YES
NO
NO
NO
NO
YES
NO
NO
YES
YES
NO
YES
YES
YES
NO
NO
NO
NO
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
NO
YES
NO
YES
NO
NO
NO...

result:

ok 5518 token(s): yes count is 3671, no count is 1847

Test #6:

score: 0
Accepted
time: 389ms
memory: 47884kb

input:

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

output:

NO
NO
YES
YES
YES
NO
NO
NO
NO
NO
YES
YES
NO
NO
NO
NO
YES
NO
YES
YES
YES
NO
NO
YES
NO
YES
YES
YES
NO
YES
YES
YES
YES
NO
NO
YES
YES
YES
NO
YES
YES
YES
NO
NO
YES
NO
YES
YES
YES
NO
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
NO
YES
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
...

result:

ok 415 token(s): yes count is 271, no count is 144

Test #7:

score: 0
Accepted
time: 404ms
memory: 48476kb

input:

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

output:

NO
NO
YES
YES
YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
NO
NO
NO
YES
NO
YES
YES
YES
YES
NO
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
...

result:

ok 415 token(s): yes count is 287, no count is 128

Test #8:

score: 0
Accepted
time: 395ms
memory: 49080kb

input:

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

output:

NO
NO
YES
YES
YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
YES
NO
YES
YES
YES
NO
NO
YES
YES
YES
NO
YES
YES
YES
NO
YES
YES
NO
NO
YES
YES
YES
YES
YES
NO
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
NO
NO
NO
YES
YES
YES
YES
YES
NO
NO
YES
NO
YES
NO
YES
NO
YES
YES
YES
NO
YES
NO
YES
YES
NO
YES
YES
NO
YES
YES
YES
YES
YES
...

result:

ok 415 token(s): yes count is 274, no count is 141

Test #9:

score: 0
Accepted
time: 343ms
memory: 18528kb

input:

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

output:

NO
NO
NO
NO
NO
NO
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
YES
NO
YES
YES
NO
YES
NO
NO
NO
NO
NO
YES
YES
NO
NO
NO
YES
NO
YES
YES
NO
YES
YES
YES
YES
YES
YES
NO
YES
NO
YES
YES
YES
NO
YES
NO
NO
YES
YES
YES
NO
NO
YES
NO
YES
YES
NO
YES
YES
NO
NO
YES
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
...

result:

ok 9132 token(s): yes count is 2509, no count is 6623

Test #10:

score: 0
Accepted
time: 337ms
memory: 19136kb

input:

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

output:

NO
NO
NO
NO
NO
NO
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
NO
NO
YES
YES
YES
NO
YES
NO
NO
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
NO
YES
YES
YES
NO
YES
YES
YES
YES
NO
NO
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
NO
YES
YES
NO
NO
NO
YES
YES
NO
YES
NO
YES
NO
YES
YES
NO
YES
NO
NO
YES
YES
NO
NO
YES
YES
YES...

result:

ok 9136 token(s): yes count is 2514, no count is 6622

Test #11:

score: 0
Accepted
time: 348ms
memory: 17564kb

input:

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

output:

NO
NO
NO
NO
NO
NO
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
NO
YES
YES
NO
YES
NO
YES
NO
NO
YES
NO
NO
NO
YES
YES
YES
NO
NO
NO
YES
NO
NO
NO
NO
YES
YES
NO
YES
YES
YES
YES
NO
NO
YES
YES
YES
NO
YES
YES
NO
YES
YES
YES
NO
NO
YES
NO
YES
YES
YES
NO
NO
YES
YES
YES
NO
YES
YES
NO
NO
YES
NO
YES
YES
NO
YES
NO
NO
...

result:

ok 9130 token(s): yes count is 2452, no count is 6678

Test #12:

score: 0
Accepted
time: 323ms
memory: 3688kb

input:

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

output:

NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO...

result:

ok 100000 token(s): yes count is 12069, no count is 87931

Test #13:

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

input:

50000
11 22
10 6
7 1
6 9
1 10
3 10
11 8
1 3
2 9
9 5
2 3
2 1
5 2
4 10
3 6
4 1
6 11
5 4
11 1
8 4
10 2
1 6
1 9
10 18
2 3
3 4
7 5
8 5
10 4
9 10
9 7
2 10
6 2
8 1
2 7
5 2
9 3
2 1
10 7
1 3
4 8
5 9
10 19
5 10
3 7
5 1
3 4
3 8
9 4
2 3
8 1
8 10
7 6
4 7
2 7
6 3
1 2
9 1
10 9
7 1
1 3
4 2
8 19
4 7
1 2
7 3
4 6
1 6
...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
...

result:

ok 50000 token(s): yes count is 0, no count is 50000

Test #14:

score: 0
Accepted
time: 248ms
memory: 3700kb

input:

50000
11 19
7 6
8 11
2 1
7 10
6 5
9 1
3 1
10 5
7 9
4 3
5 4
4 6
9 2
11 1
8 1
9 3
5 2
1 6
5 3
8 18
1 6
6 5
4 6
8 4
2 1
7 4
8 2
3 8
4 2
6 2
1 7
1 5
5 3
5 8
2 5
2 3
7 5
8 6
14 19
7 5
6 8
11 14
4 3
2 9
2 12
13 10
2 6
4 9
11 10
8 13
2 1
2 11
4 10
13 4
14 1
1 5
12 1
2 3
8 19
2 1
8 2
5 2
4 3
5 4
7 4
8 4
4 6...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
...

result:

ok 50000 token(s): yes count is 0, no count is 50000

Test #15:

score: 0
Accepted
time: 257ms
memory: 4012kb

input:

50000
10 18
2 5
2 4
6 8
4 1
1 2
9 6
1 3
7 6
9 1
2 6
10 1
2 7
7 8
1 5
2 10
8 4
8 1
10 5
9 18
7 2
5 1
1 4
8 5
9 2
6 9
3 4
3 1
9 7
1 2
1 8
3 6
8 9
8 2
7 3
7 1
6 7
3 2
15 21
2 8
2 1
9 2
13 4
15 8
6 5
6 14
12 2
8 9
4 7
4 6
15 5
7 5
11 8
10 8
4 2
4 9
13 12
1 3
8 6
5 1
8 18
6 2
4 2
7 2
4 7
1 2
1 8
5 8
2 8
...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
...

result:

ok 50000 token(s): yes count is 0, no count is 50000

Test #16:

score: 0
Accepted
time: 323ms
memory: 3660kb

input:

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

output:

NO
NO
YES
NO
YES
NO
YES
NO
YES
YES
YES
YES
NO
YES
NO
NO
YES
YES
YES
YES
YES
YES
NO
YES
NO
NO
NO
YES
YES
YES
NO
NO
NO
NO
NO
NO
YES
YES
YES
YES
NO
NO
NO
NO
NO
NO
YES
YES
NO
YES
NO
YES
NO
YES
NO
YES
YES
NO
NO
YES
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
NO
YES
NO
NO
YES
YES
YES
NO
NO
YES
YES
YES...

result:

ok 100000 token(s): yes count is 34776, no count is 65224

Test #17:

score: 0
Accepted
time: 282ms
memory: 3708kb

input:

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

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO...

result:

ok 58000 token(s): yes count is 822, no count is 57178

Test #18:

score: 0
Accepted
time: 1222ms
memory: 345760kb

input:

1
1000001 1000000
75323 899203
532596 656242
154951 354315
940187 69090
81695 56960
680563 733660
6795 18583
618176 81766
966333 66337
526616 512574
296179 581283
369416 262888
617387 502024
194775 382106
79394 284916
36706 17157
672152 983496
326170 36407
574557 76932
556564 41755
614817 269172
464...

output:

YES

result:

ok YES

Test #19:

score: 0
Accepted
time: 1241ms
memory: 345824kb

input:

1
1000000 1000000
87109 747393
109821 106613
147275 41633
242825 184874
18168 387743
128090 318244
294954 57905
971907 69957
72090 259657
514857 327272
87028 132775
18548 16405
188795 134920
32492 144111
292966 790905
291204 661324
59848 26383
474817 372099
195521 117902
876185 837421
68934 115446
1...

output:

NO

result:

ok NO

Test #20:

score: 0
Accepted
time: 735ms
memory: 495352kb

input:

1
1000000 1000000
372528 372529
570332 570331
2574 2573
859851 859852
767997 767996
200383 200384
474830 474829
875254 875255
559145 559146
136847 136848
945683 945682
372718 372719
38032 38033
553293 553294
140703 140704
65059 65060
10663 10664
521738 521737
202404 202403
550539 550540
688993 68899...

output:

NO

result:

ok NO

Test #21:

score: 0
Accepted
time: 802ms
memory: 339264kb

input:

1
1000000 1000000
1 7525
1 114847
250651 1
722357 1
331797 1
257631 1
621413 1
831588 1
929858 1
119517 1
1 509852
1 88909
1 530948
733605 1
570510 1
313622 1
712015 1
1 400615
1 818527
1 996703
223147 1
609952 1
523399 1
131394 1
1 984360
32918 1
188874 1
324753 1
314000 1
1 84010
1 301130
44093 1
...

output:

NO

result:

ok NO

Test #22:

score: 0
Accepted
time: 820ms
memory: 339252kb

input:

1
1000000 1000000
1 780175
1 840819
1 106085
1 923792
1 291856
1 869323
1 2586
1 486969
1 909106
745668 1
1 65605
193929 1
1 763755
629994 1
66006 1
1 949317
869692 1
660866 1
1 41144
1 692261
52010 1
140409 1
713499 1
1 569250
510266 1
1 492147
16321 1
989831 1
783927 1
910647 1
445016 1
769429 1
2...

output:

NO

result:

ok NO

Test #23:

score: 0
Accepted
time: 775ms
memory: 514920kb

input:

1
1000000 1000000
696689 696690
127021 127022
39865 39864
780012 780013
575968 575967
734929 734928
979468 979467
182690 182691
632155 632156
129484 129485
968873 968872
681622 681621
529233 529232
215439 215438
414760 414761
254604 254603
969773 969774
343930 343931
636992 636993
146798 146799
3175...

output:

NO

result:

ok NO

Test #24:

score: 0
Accepted
time: 700ms
memory: 515080kb

input:

1
1000000 1000000
744914 744915
304488 304487
143074 143075
178003 178004
130146 130147
182117 182118
398123 398124
215960 215959
146693 146694
526037 526038
109328 109329
707869 707868
223250 223249
421693 421694
354351 354352
42186 42187
455120 455121
685884 685883
626559 626558
109244 109243
2404...

output:

YES

result:

ok YES

Extra Test:

score: 0
Extra Test Passed