QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#484950#6502. Disjoint Set Unionnhuang685TL 217ms4868kbC++204.5kb2024-07-20 09:37:102024-07-20 09:37:10

Judging History

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

  • [2024-07-20 09:37:10]
  • 评测
  • 测评结果:TL
  • 用时:217ms
  • 内存:4868kb
  • [2024-07-20 09:37:10]
  • 提交

answer

/**
 * @author n685
 * @brief
 * @date 2024-07-17
 *
 *
 */
#include <bits/stdc++.h>

#ifdef LOCAL
#include "dd/debug.h"
#else
#define dbg(...) 42
#define dbgR(...) 4242
#define dbgP(...) 420
#define dbgRP(...) 420420
void nline() {}
void bar() {}
#endif

struct DSU2 {
  std::vector<int> val;
  int cnt{};
  DSU2() = default;
  explicit DSU2(int n) : val(n), cnt(n) {
    for (int i = 0; i < n; ++i) {
      val[i] = i;
    }
  }
  explicit DSU2(const std::vector<int> &val_)
      : val(val_), cnt(static_cast<int>(val_.size())) {}
  int find(int x) {
    if (x == val[x]) {
      return x;
    }
    val[x] = find(val[x]);
    return val[x];
  }
  bool unite(int x, int y) {
    x = find(x);
    y = find(y);
    if (x == y) {
      return false;
    }
    val[x] = y;
    cnt--;
    return true;
  }
  bool connected(int u, int v) { return find(u) == find(v); }
  int count() const { return cnt; }
};

struct DSU {
  std::vector<int> val;
  std::vector<std::vector<int>> ch;
  int cnt{};
  DSU() = default;
  explicit DSU(int n) : val(n), ch(n), cnt(n) {
    for (int i = 0; i < n; ++i) {
      val[i] = i;
      ch[i].push_back(i);
    }
  }
  explicit DSU(const std::vector<int> &val_)
      : val(val_), ch(val_.size()), cnt(static_cast<int>(val_.size())) {
    for (int i = 0; i < std::ssize(val); ++i) {
      ch[find(i, false)].push_back(i);
    }
  }
  int find(int x, bool comp = true) {
    if (x == val[x]) {
      return x;
    }
    if (!comp) {
      return find(val[x], comp);
    }
    val[x] = find(val[x], comp);
    return val[x];
  }
  bool unite(int x, int y) {
    x = find(x);
    y = find(y);
    if (x == y) {
      return false;
    }
    for (int i : ch[x]) {
      ch[y].push_back(i);
    }
    ch[x].clear();
    val[x] = y;
    cnt--;
    return true;
  }
  bool connected(int u, int v) { return find(u) == find(v); }
  int count() const { return cnt; }
};

struct Query {
  int t{};
  int x{}, y = -1;
};

void solve() {
  int n;
  std::cin >> n;
  std::vector<int> f(n), g(n);
  for (int &v : f) {
    std::cin >> v;
    --v;
  }
  for (int &v : g) {
    std::cin >> v;
    --v;
  }
  std::vector<bool> vis(n);
  for (int i = 0; i < n; ++i) {
    if (!vis[i]) {
      int node = i;
      bool good = false;
      do {
        vis[node] = true;
        if (node == g[node]) {
          good = true;
          break;
        }
        node = g[node];
      } while (node != i);
      if (!good) {
        std::cout << "NO\n";
        return;
      }
    }
  }
  DSU2 a(f), b(g);
  std::vector<int> in(n);
  std::vector<std::vector<int>> nxt(n);
  std::vector<std::set<int>> pre(n);
  for (int i = 0; i < n; ++i) {
    int r1 = a.find(i);
    int r2 = b.find(i);
    if (r1 != r2) {
      nxt[r1].push_back(r2);
      ++in[r2];
      pre[r2].insert(r1);
    }
    r1 = a.find(i);
    r2 = g[i];
    if (r1 != r2) {
      nxt[r1].push_back(r2);
      ++in[r2];
      pre[r2].insert(r1);
    }
  }
  std::vector<int> t;
  std::queue<int> q;
  for (int i = 0; i < n; ++i) {
    if (in[i] == 0) {
      q.push(i);
    }
  }
  while (!q.empty()) {
    int node = q.front();
    q.pop();
    t.push_back(node);
    for (int i : nxt[node]) {
      if (--in[i] == 0) {
        q.push(i);
      }
    }
  }
  if (std::ssize(t) != n) {
    std::cout << "NO\n";
    return;
  }
  DSU dsu(f);
  std::vector<Query> ans;
  auto find = [&](int x) {
    ans.emplace_back(1, x);
    dsu.find(x);
  };
  auto unite = [&](int x, int y) {
    if (x == y) {
      return;
    }
    ans.emplace_back(2, x, y);
    dsu.unite(x, y);
  };
  for (int i = 0; i < n; ++i) {
    if (dsu.val[i] != g[i]) {
      find(i);
    }
  }
  for (int i : t) {
    for (int j : pre[i]) {
      if (dsu.find(j, false) == dsu.find(i, false)) {
        continue;
      }
      unite(dsu.find(j, false), i);
    }
    for (int j : dsu.ch[i]) {
      if (dsu.val[j] != g[j]) {
        find(j);
      }
    }
  }

  if (dsu.val != g) {
    std::cout << "NO\n";
    return;
  }
  std::cout << "YES\n";
  std::cout << ans.size() << '\n';
  for (auto [tt, x, y] : ans) {
    if (tt == 1) {
      std::cout << tt << ' ' << x + 1 << '\n';
    } else {
      std::cout << tt << ' ' << x + 1 << ' ' << y + 1 << '\n';
    }
  }
}

int main() {
#ifndef LOCAL
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
#endif

  int t;
  std::cin >> t;
  for (int i = 0; i < t; ++i) {
    dbg(i + 1);
    solve();
    bar();
  }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

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

output:

YES
3
1 1
1 1
2 1 2
YES
11
1 2
1 3
1 4
1 3
1 4
2 3 2
1 2
1 3
1 4
2 2 1
1 3
YES
12
1 1
1 2
1 3
1 4
1 1
2 1 2
1 2
2 2 3
1 3
2 3 4
1 4
2 4 5
NO
YES
18
1 2
1 3
1 4
1 5
1 6
1 6
2 6 2
1 2
1 3
2 2 5
1 5
1 2
1 3
2 5 4
1 4
1 2
2 4 1
1 2

result:

ok good! (YES count = 4, NO count = 1) (5 test cases)

Test #2:

score: 0
Accepted
time: 208ms
memory: 3596kb

input:

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

output:

YES
6
1 1
1 5
1 1
1 5
2 1 2
1 5
YES
0
YES
13
1 2
1 3
1 4
1 5
1 2
1 3
1 5
2 2 4
2 3 4
1 4
1 5
2 4 1
1 5
YES
6
1 3
1 5
1 3
1 5
2 3 2
1 5
YES
0
YES
6
1 1
1 2
1 1
1 2
2 1 5
2 2 3
YES
9
1 2
1 3
1 5
1 2
1 3
1 5
2 3 1
2 2 4
2 5 4
YES
3
1 5
1 5
2 5 2
YES
3
1 2
1 2
2 2 3
YES
9
1 1
1 3
1 5
1 1
1 3
1 5
2 1 2
2...

result:

ok good! (YES count = 100000, NO count = 0) (100000 test cases)

Test #3:

score: 0
Accepted
time: 217ms
memory: 3668kb

input:

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

output:

YES
3
1 2
1 2
2 2 10
YES
21
1 2
1 3
1 4
1 5
1 7
1 8
1 9
1 2
1 7
1 3
1 4
1 5
1 8
1 9
2 2 6
2 3 6
2 4 6
2 5 6
1 7
1 8
1 9
YES
25
1 1
1 2
1 4
1 5
1 6
1 7
1 8
1 10
1 1
1 2
1 4
1 8
1 10
2 2 7
2 10 7
1 5
1 6
1 7
1 8
2 1 9
2 7 9
2 4 9
1 5
1 6
1 8
YES
24
1 1
1 3
1 4
1 5
1 7
1 8
1 9
1 10
1 1
1 3
1 4
1 5
1 7
...

result:

ok good! (YES count = 50000, NO count = 0) (50000 test cases)

Test #4:

score: 0
Accepted
time: 92ms
memory: 3664kb

input:

12500
20
9 2 3 4 5 6 7 8 9 10 11 9 13 14 19 19 17 18 19 20
8 2 3 6 4 6 7 18 18 10 3 8 6 4 19 4 4 4 4 20
20
6 2 3 4 6 15 7 8 9 10 11 12 13 14 15 20 17 18 19 20
12 12 2 8 12 12 7 12 9 12 11 12 13 14 12 8 8 9 8 8
20
5 2 3 4 5 20 7 8 9 10 11 10 13 14 20 16 10 18 19 9
19 19 4 4 19 3 14 8 3 4 3 4 3 14 3 1...

output:

YES
41
1 1
1 4
1 5
1 8
1 9
1 11
1 12
1 13
1 14
1 16
1 17
1 18
1 19
1 5
1 1
1 9
1 12
1 11
1 13
1 14
1 17
1 16
1 19
2 9 8
1 8
1 1
1 9
1 12
2 11 3
2 8 18
1 18
1 9
2 5 4
2 14 4
2 17 4
2 18 4
2 19 4
1 4
1 16
2 4 6
2 13 6
YES
42
1 1
1 2
1 3
1 4
1 5
1 6
1 8
1 10
1 15
1 16
1 17
1 18
1 19
1 20
1 3
1 4
1 10
1...

result:

ok good! (YES count = 12500, NO count = 0) (12500 test cases)

Test #5:

score: 0
Accepted
time: 99ms
memory: 3596kb

input:

12500
20
1 2 3 4 5 6 7 7 5 10 11 12 13 14 5 16 17 5 19 20
10 3 12 3 3 3 4 12 3 10 3 12 3 3 13 3 11 11 13 2
20
1 2 3 10 5 6 7 13 12 10 11 13 13 13 13 16 17 13 19 20
13 13 3 10 13 13 1 13 13 13 13 13 13 13 13 13 13 13 13 13
20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 9 3 4 17 6 7 19 9 10 1...

output:

YES
64
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 11
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 1
1 5
1 9
1 15
1 18
1 6
1 7
1 8
1 14
1 16
1 17
1 19
1 20
2 1 10
2 7 4
1 4
1 8
2 5 11
2 17 11
1 11
1 5
1 9
1 15
1 18
2 11 13
2 19 13
1 13
1 11
1 5
1 9
1 15
2 20 2
1 2
2 2 3
2 4 3
2 13 3
2 6 3
2 14 3
2 16 3
1 3
1...

result:

ok good! (YES count = 12500, NO count = 0) (12500 test cases)

Test #6:

score: 0
Accepted
time: 29ms
memory: 3724kb

input:

500
100
5 43 3 13 100 6 56 8 9 62 11 82 13 14 15 48 17 76 19 64 35 62 50 77 38 94 35 62 35 30 31 32 48 34 35 36 43 64 39 40 35 42 62 44 45 62 47 62 49 50 62 47 62 62 39 48 20 58 59 60 43 66 19 62 3 66 67 85 69 70 83 28 73 83 100 76 77 80 85 80 81 82 100 84 85 40 20 88 62 90 40 92 93 94 58 96 30 98 6...

output:

YES
356
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 61
1...

result:

ok good! (YES count = 500, NO count = 0) (500 test cases)

Test #7:

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

input:

55
300
172 231 135 149 135 297 7 297 236 52 73 114 52 135 15 73 297 97 218 236 52 236 218 73 244 236 73 52 162 218 103 30 214 34 59 36 73 89 44 131 73 73 73 73 73 41 47 32 236 52 248 73 73 54 209 75 57 73 205 151 73 62 73 73 143 141 238 205 106 73 71 128 73 124 75 76 89 231 205 73 149 135 249 135 13...

output:

YES
2671
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 61
1 62
1 63
...

result:

ok good! (YES count = 55, NO count = 0) (55 test cases)

Test #8:

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

input:

5
1000
794 193 3 4 888 279 316 8 621 679 376 254 791 550 362 706 677 133 133 279 279 57 557 471 780 471 110 557 264 317 557 927 264 908 589 193 481 38 39 941 619 473 683 340 817 780 876 548 557 193 589 648 264 471 940 528 557 710 57 57 61 142 133 481 679 142 712 264 557 264 683 468 679 204 398 754 3...

output:

YES
13187
1 1
1 2
1 4
1 5
1 7
1 8
1 9
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 27
1 28
1 30
1 31
1 32
1 33
1 36
1 37
1 38
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 50
1 51
1 52
1 53
1 54
1 56
1 57
1 59
1 62
1 63
1 64
1 65
1 66
1 67
1 68
1 69
1 70
1 71
1 72
1 73
1 ...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #9:

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

input:

5
1000
811 448 371 731 601 6 950 8 731 811 123 688 753 282 15 802 17 282 282 20 272 818 23 24 731 1 805 67 951 753 230 182 629 15 874 36 576 38 113 272 41 811 43 455 282 595 965 836 582 855 811 76 230 50 731 885 811 595 182 969 619 62 688 576 811 944 335 1 944 230 71 42 73 328 11 951 753 10 335 944 ...

output:

YES
2997
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 61
...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #10:

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

input:

5
1000
1 696 3 4 70 98 715 8 174 10 11 12 342 530 15 878 928 191 447 20 21 878 23 436 367 4 174 28 321 666 31 911 33 34 35 526 66 38 39 868 41 440 43 710 45 988 47 48 62 50 383 612 300 569 878 56 84 58 560 60 61 401 63 64 815 647 67 68 69 70 670 72 73 74 75 846 77 784 554 80 208 82 142 84 85 590 87 ...

output:

YES
2997
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #11:

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

input:

5
1000
1 697 3 807 656 548 7 859 9 188 11 194 629 907 319 275 796 18 876 878 21 711 376 82 275 118 27 28 144 30 31 32 878 225 35 795 193 835 39 220 468 509 601 808 569 46 947 871 859 878 228 52 113 697 621 56 319 616 323 572 970 795 98 994 65 853 907 387 69 436 605 835 601 74 762 256 77 78 275 907 5...

output:

YES
3484
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #12:

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

input:

5
1000
1 2 500 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 689 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 452 86 684 88 89 90 91 550 93 94 95 96 97 98 74...

output:

YES
2998
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #13:

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

input:

5
1000
1 2 3 4 5 6 7 69 9 10 11 12 13 14 15 16 17 18 822 423 21 22 23 24 25 26 27 28 29 30 848 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 963 48 49 50 51 52 53 54 672 56 673 58 59 60 868 62 63 64 480 66 67 68 69 941 71 834 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 515 91 92 93 94 95 96 97...

output:

YES
3128
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #14:

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

input:

5
1000
433 256 696 228 253 435 436 725 47 766 308 958 433 851 399 433 258 328 748 435 468 725 982 24 748 157 748 999 958 725 27 553 435 819 139 553 748 304 39 676 289 228 33 725 748 851 811 735 435 47 819 399 531 435 738 191 433 304 559 60 748 800 227 47 982 658 47 586 69 748 991 191 325 107 183 644...

output:

YES
17660
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #15:

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

input:

5
1000
766 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 592 18 19 20 21 22 230 24 25 26 27 28 29 30 31 32 270 144 35 36 37 105 39 40 180 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 947 61 62 417 64 65 66 67 68 69 70 71 72 73 888 75 76 77 78 79 80 81 82 83 766 85 86 87 214 916 90 91 92 93 94 95 317...

output:

YES
2998
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #16:

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

input:

5
1000
392 897 227 735 327 707 615 226 153 102 593 398 726 696 857 894 17 823 799 322 109 714 931 260 762 823 988 827 799 949 694 916 867 123 398 747 633 367 931 916 231 89 891 44 45 538 938 175 49 376 799 762 960 696 327 327 997 477 726 799 857 714 339 398 916 231 799 68 69 894 71 696 73 255 50 395...

output:

YES
3783
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #17:

score: 0
Accepted
time: 11ms
memory: 4868kb

input:

5
1000
1 702 632 4 5 629 7 8 9 10 713 371 13 14 15 16 17 785 19 20 21 476 23 24 584 26 54 28 29 30 31 32 33 34 35 36 768 239 39 96 809 42 43 44 45 46 47 48 208 50 51 52 53 937 55 56 57 58 59 606 25 62 255 64 65 435 67 68 69 70 70 72 69 564 75 76 615 78 79 255 564 800 537 84 85 86 564 262 89 90 91 92...

output:

YES
8674
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 12
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 61
1 62
1 63
1 64
1 65
...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #18:

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

input:

5
1000
167 610 3 858 1 592 201 496 9 10 11 969 13 14 290 705 618 18 19 62 21 22 23 25 25 562 509 28 29 162 31 32 1 502 518 1 906 501 39 40 41 42 43 44 779 17 979 530 49 737 51 52 53 54 55 56 57 779 533 60 61 822 54 64 65 66 509 68 69 562 71 72 73 587 509 76 77 78 848 80 81 723 83 84 142 936 562 868 ...

output:

YES
11362
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #19:

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

input:

5
1000
404 627 3 4 5 6 7 8 9 10 11 12 13 14 693 16 17 18 19 20 221 22 23 24 25 26 27 28 29 30 31 32 33 718 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 986 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 503 551 994 89 495 91 447 93 94 495 96 ...

output:

YES
3057
1 2
1 3
1 4
1 5
1 6
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 28
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 38
1 39
1 40
1 42
1 43
1 44
1 45
1 46
1 48
1 49
1 50
1 51
1 52
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 62
1 64
1 66
1 67
1 68
1 69
1 70
1 7...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #20:

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

input:

5
1000
1 2 3 4 5 6 7 8 9 511 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 575 27 28 29 30 31 32 33 34 35 36 37 822 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 804 62 63 64 65 66 67 477 69 70 71 72 73 74 75 76 77 78 79 80 691 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 941 9...

output:

YES
2398
1 1
1 2
1 3
1 4
1 5
1 7
1 8
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 19
1 20
1 21
1 22
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 32
1 33
1 34
1 35
1 36
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 50
1 51
1 52
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 61
1 63
1 64
1 65
1 67
1 68
1 69
1 7...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #21:

score: 0
Accepted
time: 171ms
memory: 3696kb

input:

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

output:

YES
3
1 10
1 10
2 10 7
YES
15
1 3
1 4
1 6
1 7
1 8
1 3
1 4
1 6
1 7
2 3 8
2 6 8
1 8
1 4
2 8 9
2 7 9
YES
13
1 1
1 2
1 4
1 6
1 9
1 1
1 4
1 6
2 1 9
1 9
2 4 7
2 9 5
2 6 5
YES
3
1 7
1 7
2 7 3
YES
6
1 2
1 5
1 2
1 5
2 2 4
2 5 4
YES
6
1 2
1 3
1 2
1 3
2 2 5
2 3 8
YES
21
1 1
1 3
1 4
1 7
1 8
1 9
1 10
1 1
1 3
1 4...

result:

ok good! (YES count = 50000, NO count = 0) (50000 test cases)

Test #22:

score: 0
Accepted
time: 80ms
memory: 3668kb

input:

12500
20
17 2 3 4 5 6 7 4 9 10 11 12 13 14 15 10 17 3 19 20
17 2 3 4 5 6 3 4 9 10 11 12 13 14 15 10 17 3 19 20
20
1 17 3 9 12 6 7 8 9 12 12 12 13 14 15 8 9 18 8 12
7 17 3 9 12 8 7 8 1 12 12 3 3 12 15 8 9 15 8 12
20
5 2 10 4 9 6 7 3 9 10 4 12 13 14 18 16 17 18 12 10
5 14 6 4 9 6 6 10 4 6 4 12 13 14 1...

output:

YES
3
1 7
1 7
2 7 3
YES
21
1 1
1 6
1 9
1 12
1 13
1 14
1 18
1 6
1 9
1 13
1 14
1 18
2 6 8
2 9 1
1 1
2 14 12
1 12
2 18 15
2 1 7
2 12 3
2 13 3
YES
19
1 2
1 3
1 7
1 8
1 9
1 10
1 17
1 2
1 7
1 9
1 3
1 10
1 17
2 2 14
2 9 4
2 7 6
2 10 6
2 17 6
1 3
YES
31
1 1
1 2
1 3
1 4
1 5
1 7
1 8
1 13
1 14
1 18
1 1
1 3
1 5...

result:

ok good! (YES count = 12500, NO count = 0) (12500 test cases)

Test #23:

score: 0
Accepted
time: 19ms
memory: 3652kb

input:

500
100
1 2 13 89 15 6 64 8 9 56 11 12 13 82 15 16 17 18 19 20 1 22 23 24 25 26 27 28 29 30 31 32 33 34 35 21 37 23 39 40 41 42 43 44 45 46 47 48 49 82 51 52 53 54 55 56 11 58 59 3 61 62 63 64 65 66 19 68 11 70 71 10 73 74 23 76 39 78 56 80 81 82 99 23 85 86 87 93 89 90 91 92 93 94 95 96 97 98 99 10...

output:

YES
147
1 1
1 2
1 9
1 11
1 12
1 13
1 16
1 18
1 24
1 25
1 26
1 30
1 31
1 32
1 39
1 41
1 42
1 43
1 46
1 48
1 52
1 53
1 55
1 56
1 57
1 58
1 59
1 61
1 63
1 66
1 68
1 69
1 70
1 71
1 74
1 76
1 78
1 81
1 82
1 87
1 89
1 90
1 92
1 93
1 95
1 96
1 97
1 98
1 100
1 1
1 2
1 9
1 12
1 13
1 16
1 24
1 25
1 26
1 30
1 ...

result:

ok good! (YES count = 500, NO count = 0) (500 test cases)

Test #24:

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

input:

55
300
73 84 3 257 5 257 111 8 265 10 74 73 279 81 277 73 17 73 19 227 124 174 23 93 25 81 81 257 29 208 31 32 37 175 74 265 37 257 125 40 176 42 171 132 277 124 248 48 49 187 51 52 53 147 55 132 277 53 124 60 194 81 277 271 65 66 44 171 211 45 277 72 73 257 257 76 79 299 133 277 73 257 132 81 271 1...

output:

YES
1779
1 1
1 3
1 4
1 5
1 8
1 9
1 10
1 13
1 17
1 19
1 20
1 22
1 23
1 24
1 26
1 29
1 31
1 32
1 35
1 38
1 40
1 42
1 44
1 48
1 49
1 51
1 53
1 55
1 56
1 57
1 59
1 60
1 63
1 65
1 66
1 67
1 71
1 72
1 73
1 74
1 76
1 77
1 78
1 79
1 81
1 82
1 83
1 87
1 88
1 90
1 91
1 93
1 95
1 96
1 98
1 99
1 100
1 103
1 106...

result:

ok good! (YES count = 55, NO count = 0) (55 test cases)

Test #25:

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

input:

5
1000
1 2 3 4 705 6 7 8 9 10 11 781 13 231 15 16 17 18 19 20 21 22 23 24 25 26 27 401 29 42 31 445 667 289 35 36 37 761 996 40 41 42 43 251 45 46 47 231 49 50 51 52 53 54 55 56 57 35 59 60 61 62 63 64 65 66 538 401 69 70 71 72 73 74 75 554 77 78 79 344 81 82 83 84 85 442 51 88 89 90 91 92 93 94 891...

output:

YES
25
1 157
1 189
1 240
1 400
1 480
1 812
1 886
1 913
1 942
1 157
1 189
1 400
1 480
1 812
1 886
1 913
1 942
2 157 924
2 189 77
2 400 845
2 480 183
2 812 795
2 886 45
2 913 318
2 942 501
YES
135
1 22
1 38
1 64
1 98
1 114
1 117
1 133
1 147
1 150
1 152
1 175
1 182
1 211
1 220
1 256
1 259
1 309
1 314
1...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #26:

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

input:

5
1000
736 2 3 4 5 6 7 8 9 10 11 797 823 929 15 16 17 18 19 20 264 22 23 24 52 353 27 28 29 30 839 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 944 51 52 403 872 55 56 57 58 59 60 61 62 63 64 99 66 67 68 69 70 71 72 73 938 302 186 77 78 79 80 81 82 83 84 85 86 983 86 89 90 91 46 93 94 95 96...

output:

YES
296
1 1
1 6
1 8
1 9
1 23
1 35
1 38
1 39
1 45
1 74
1 85
1 86
1 90
1 94
1 118
1 120
1 130
1 135
1 144
1 155
1 157
1 162
1 176
1 177
1 184
1 208
1 219
1 238
1 243
1 250
1 265
1 278
1 289
1 306
1 313
1 314
1 316
1 317
1 325
1 327
1 340
1 346
1 358
1 375
1 381
1 391
1 394
1 396
1 400
1 408
1 425
1 44...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #27:

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

input:

5
1000
487 446 3 4 5 6 442 8 452 10 601 12 300 895 15 208 866 328 19 20 21 967 644 24 25 118 27 28 787 30 31 344 33 139 350 440 37 369 39 918 41 42 190 483 45 46 556 48 360 807 188 608 53 67 55 333 398 397 853 60 61 953 676 678 65 66 882 483 69 369 71 72 763 576 75 76 77 78 724 574 310 193 83 84 85 ...

output:

YES
457
1 14
1 19
1 46
1 53
1 57
1 65
1 68
1 73
1 76
1 77
1 85
1 89
1 91
1 118
1 121
1 139
1 141
1 147
1 168
1 169
1 184
1 190
1 197
1 200
1 202
1 207
1 210
1 213
1 214
1 225
1 231
1 240
1 248
1 252
1 257
1 265
1 266
1 267
1 274
1 285
1 287
1 291
1 307
1 308
1 314
1 316
1 321
1 324
1 326
1 328
1 329...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #28:

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

input:

5
1000
588 923 119 77 5 6 7 8 9 10 11 12 13 477 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 987 155 153 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 369 53 54 764 56 341 305 932 430 61 663 63 462 65 66 67 68 69 70 884 72 73 74 180 76 77 78 609 80 81 82 83 739 85 86 87 400 183 90 91 92 6...

output:

YES
148
1 11
1 26
1 44
1 97
1 124
1 134
1 141
1 153
1 159
1 170
1 181
1 211
1 226
1 235
1 248
1 250
1 288
1 345
1 349
1 354
1 374
1 376
1 400
1 410
1 435
1 460
1 521
1 535
1 540
1 546
1 571
1 622
1 637
1 662
1 667
1 679
1 723
1 743
1 856
1 869
1 879
1 896
1 910
1 911
1 919
1 937
1 947
1 966
1 968
1 ...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #29:

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

input:

5
1000
816 2 519 284 253 990 965 581 457 414 232 451 581 519 581 406 581 965 581 20 519 337 383 253 581 26 27 587 900 34 862 215 915 439 439 370 816 189 387 134 103 249 361 964 809 367 47 103 452 760 67 862 253 915 467 103 215 439 816 516 581 103 87 581 439 66 249 68 621 497 71 417 581 439 63 673 10...

output:

YES
887
1 1
1 4
1 18
1 34
1 36
1 37
1 38
1 40
1 56
1 58
1 63
1 87
1 101
1 103
1 104
1 130
1 134
1 143
1 159
1 161
1 166
1 173
1 189
1 210
1 213
1 222
1 234
1 253
1 258
1 266
1 269
1 271
1 272
1 277
1 284
1 293
1 302
1 310
1 311
1 328
1 337
1 343
1 367
1 370
1 372
1 380
1 384
1 386
1 399
1 402
1 406
...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #30:

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

input:

5
1000
816 2 235 51 617 979 7 981 979 113 604 984 51 773 790 33 750 466 14 803 556 190 349 51 733 816 190 207 828 816 885 76 47 880 850 349 767 773 120 141 500 979 27 44 883 190 816 630 869 984 773 141 154 900 773 349 349 500 786 118 750 154 516 349 30 154 883 113 733 979 197 451 816 816 816 51 815 ...

output:

YES
1383
1 2
1 10
1 11
1 14
1 19
1 30
1 31
1 36
1 42
1 44
1 45
1 51
1 57
1 60
1 65
1 66
1 68
1 70
1 76
1 81
1 83
1 84
1 87
1 88
1 100
1 109
1 113
1 118
1 120
1 141
1 150
1 152
1 153
1 154
1 156
1 162
1 166
1 173
1 176
1 178
1 180
1 181
1 185
1 186
1 190
1 191
1 192
1 195
1 203
1 207
1 212
1 213
1 22...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #31:

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

input:

5
1000
1 2 3 22 949 6 7 8 9 10 11 12 547 33 1 16 17 520 19 20 21 22 23 928 111 26 631 994 29 236 657 32 33 34 35 898 37 38 765 685 41 42 43 44 45 46 961 48 49 556 51 619 53 785 55 56 57 180 59 60 61 62 166 64 65 66 67 95 69 70 71 72 73 74 75 866 77 78 79 80 328 82 257 243 85 86 87 88 89 90 91 92 93 ...

output:

YES
600
1 1
1 2
1 3
1 7
1 16
1 21
1 22
1 27
1 29
1 32
1 33
1 35
1 37
1 38
1 49
1 62
1 64
1 71
1 81
1 85
1 86
1 89
1 97
1 108
1 110
1 116
1 117
1 118
1 120
1 122
1 123
1 126
1 129
1 139
1 142
1 145
1 150
1 153
1 159
1 160
1 163
1 167
1 174
1 182
1 186
1 189
1 190
1 191
1 193
1 195
1 199
1 200
1 203
1...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #32:

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

input:

5
1000
1 2 924 4 5 6 7 8 9 10 867 919 13 8 15 850 17 18 922 20 884 543 23 824 25 47 990 28 29 30 791 32 33 34 35 208 37 38 39 491 41 870 43 274 45 46 47 410 49 50 871 52 53 54 55 540 57 58 59 60 61 62 63 94 65 66 67 68 924 70 71 72 73 74 75 76 407 78 79 980 81 82 83 84 85 86 87 514 89 90 91 92 619 9...

output:

YES
443
1 1
1 4
1 5
1 13
1 17
1 35
1 39
1 41
1 45
1 50
1 53
1 59
1 74
1 86
1 91
1 98
1 104
1 119
1 123
1 124
1 130
1 134
1 137
1 138
1 140
1 149
1 156
1 177
1 181
1 184
1 197
1 202
1 207
1 212
1 216
1 218
1 220
1 222
1 225
1 226
1 227
1 234
1 270
1 274
1 278
1 282
1 285
1 295
1 299
1 311
1 312
1 316...

result:

ok good! (YES count = 5, NO count = 0) (5 test cases)

Test #33:

score: -100
Time Limit Exceeded

input:

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

output:


result: