QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#509652#6315. 填数游戏bribritt12 103ms42996kbC++174.4kb2024-08-08 16:56:412024-08-08 16:56:41

Judging History

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

  • [2024-08-08 16:56:41]
  • 评测
  • 测评结果:12
  • 用时:103ms
  • 内存:42996kb
  • [2024-08-08 16:56:41]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define int long long
vector<int> pre, post;
vector<vector<pair<int,int>>> adj;
vector<int> bt;
vector<int> deg;
vector<pair<int,int>> par;
int rev[4]={0,2,1,3};

struct seg {
  int n, h; vector<int> v, lazy;
  seg(int _n): n(_n), v(2*_n,0), lazy(_n,0), h(64-__builtin_clzll(_n)) {}
  void app(int x, int k) {
    v[x] += k;
    if(x<n) lazy[x] += k;
  }
  void build(int x) {for(x+=n;x>>=1;) v[x]=min(v[x<<1],v[x<<1|1])+lazy[x];}
  void push(int x) {
    for(int s=h;s;--s) {
      int k = (x >> s);
      app(k<<1,lazy[k]);
      app(k<<1|1,lazy[k]);
      lazy[k]=0;
    }
  }
  void up(int l, int r, int u) {
    int l0 = l, r0 = r;
    for(l+=n,r+=n;l<r;l>>=1,r>>=1) {
      if(l&1) app(l++,u);
      if(r&1) app(--r,u);
    }
    build(l0); build(r0-1);
  }
  int qry(int l, int r) {
    push(l); push(r-1);
    int ans = 1e9;
    for(l+=n,r+=n;l<r;l>>=1,r>>=1) {
      if(l&1) ans = min(ans,v[l++]);
      if(r&1) ans = min(ans,v[--r]);
    }
    return ans;
  }
};

int cnt;
void dfs0(int x, int p) {
  pre[x]=cnt++;
  for(auto [i,id]: adj[x]) if(i!=p) dfs0(i,x);
  post[x] = cnt;
}

int dfs1(int x, int p, seg &s) {
  int ans = s.qry(0,s.n);
  for(auto [i,id]: adj[x]) if(i!=p) {
    if(id==3) {
      s.up(0,s.n,-1);
      s.up(pre[i],post[i],2);
    }
    ans = max(ans,dfs1(i,x,s));
    if(id==3) {
      s.up(0,s.n,1);
      s.up(pre[i],post[i],-2);
    }
  }
  return ans;
}

int solve_tree(int rt) {
  cnt = 0;
  dfs0(rt,-1);

  seg s(cnt);
  stack<int> st;
  for(st.push(rt);st.size();) {
    int x = st.top(); st.pop();
    for(auto [i,id]: adj[x]) if(pre[i]>pre[x]) {
      st.push(i);
      if(id&2) s.up(0,s.n,1), s.up(pre[i],post[i],-1);
      else if(id) s.up(pre[i],post[i],1);
    }
  }

  return dfs1(rt,-1,s);
}

void dfs2(int x, vector<int> &v) {
  v.push_back(x);
  pre[x]=0;
  for(auto [i,id]: adj[x]) if(pre[i]) deg[i]++,deg[x]++,dfs2(i,v);
}

void dfs3(int x) {
  pre[x]=1;
  for(auto [i,id]: adj[x]) if(i>=0&&!pre[i]) {par[i]={x,rev[id]}; dfs3(i);}
}

int solve_cycle(int rt) {
  vector<int> v;
  dfs2(rt,v);

  int cyc0 = -1, cyc1 = -1;
  for(auto i: v) if(deg[i]<adj[i].size()) {if(cyc0==-1) cyc0=i; else cyc1=i;}
  if(cyc1==-1) cyc1=cyc0;
  for(auto &[i,id]: adj[cyc0]) if(i==cyc1) {i=~i; break;}
  dfs3(cyc0);

  int ans = 0, a = 0, b = 0, c = 0;
  for(auto i: v) if(i!=cyc0 && (par[i].second&1)) ans++;
  for(int i=cyc1;i!=cyc0;i=par[i].first) {
    if(par[i].second&1) ans--;
    if(par[i].second==1) a++;
    if(par[i].second==2) b++;
    if(par[i].second==3) c++;
  }
  for(auto [i,id]: adj[cyc0]) if(i<0) {
    if(id==1) a++;
    if(id==2) b++;
    if(id==3) c++;
  }

  return ans + min({a+c,b+c,(a+b+c)/2});
}

int solve(int n, int m, vector<int> a, vector<int> b) {
  adj.resize(m);
  for(int i=0;i<m;i++) adj[i].clear();
  pre.resize(m); post.resize(m);
  for(int i=0;i<m;i++) pre[i]=-1;
  deg.resize(n);
  for(int i=0;i<n;i++) deg[i]=0;
  par.resize(m);

  vector<int> par(m), sz(m,1), edges(m,0);
  iota(par.begin(),par.end(),0);
  auto onion = [&par](auto &onion, int x) -> int {return par[x]=(par[x]==x?x:onion(onion,par[x]));};
  auto merge = [&onion,&par,&sz,&edges](int x, int y) {
    x = onion(onion,x);
    y = onion(onion,y);
    if(sz[x]>sz[y]) swap(x,y);
    edges[y]++;
    if(x==y) return 0;
    par[x]=y;
    sz[y]+=sz[x];
    edges[y]+=edges[x];
    return 1;
  };
  for(int i=0;i<n;i++) adj[a[i]].push_back({b[i],bt[i]}),adj[b[i]].push_back({a[i],rev[bt[i]]}), merge(a[i],b[i]);
  int ans = 0;
  for(int i=0;i<n;i++) if(par[i]==i) {
    int net = edges[i]-sz[i];
    if(net&&(~net)) return -1;
    if(net) ans += solve_tree(i);
    else ans += solve_cycle(i);
  }
  return ans;
}
main() {
  ios_base::sync_with_stdio(0); cin.tie(0);
  int t; cin >> t; while(t--) {
    int n, m; cin >> n >> m;
    vector<pair<int,int>> s(n);
    vector<int> a(n), b(n);
    bt.resize(n);
    for(int i=0,sz;i<n;i++) {
      cin >> sz >> s[i].first;
      if(sz==2) cin>>s[i].second; else s[i].second=s[i].first;
      s[i].first--; s[i].second--;
    }
    for(int i=0,sz;i<n;i++) {
      cin >> sz >> a[i];
      if(sz==2) cin>>b[i]; else b[i]=a[i];
      a[i]--; b[i]--;
      bt[i] = 0;
      bt[i]|=(a[i]==s[i].first||a[i]==s[i].second);
      bt[i]|=((b[i]==s[i].first||b[i]==s[i].second)<<1);
    }
    cout << solve(n,m,a,b)<<"\n";
  }
}

详细


Pretests


Final Tests

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3616kb

input:

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

output:

4
0
3
1
1
1
8
-1
8
2
5
3
3
5
3
4
3
3
1
4

result:

wrong answer 9th numbers differ - expected: '9', found: '8'

Test #2:

score: 0
Wrong Answer
time: 0ms
memory: 3768kb

input:

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

output:

3
5
9
3
3
3
-1
4
5
2
3
2
0
4
3
6
1
5
2
2

result:

wrong answer 4th numbers differ - expected: '4', found: '3'

Test #3:

score: 0
Wrong Answer
time: 0ms
memory: 3844kb

input:

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

output:

6
1
4
4
-1
3
4
3
3
6
0
1
3
9
3
5
3
4
3
0

result:

wrong answer 11th numbers differ - expected: '4', found: '0'

Test #4:

score: 0
Wrong Answer
time: 0ms
memory: 3636kb

input:

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

output:

3
2
0
3
9
3
0
3
4
4
3
6
3
2
3
7
2
-1
3
3

result:

wrong answer 16th numbers differ - expected: '8', found: '7'

Test #5:

score: 0
Wrong Answer
time: 0ms
memory: 3844kb

input:

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

output:

3
4
1
3
3
-1
3
2
6
2
2
4
3
0
5
4
6
1
3
2

result:

wrong answer 14th numbers differ - expected: '3', found: '0'

Test #6:

score: 0
Runtime Error

input:

1000
10 10
2 1 8
2 8 3
2 3 4
2 2 1
2 4 7
2 7 4
2 9 6
1 5
1 8
2 2 6
2 7 3
2 6 7
2 10 9
2 8 3
2 9 1
2 10 6
2 3 10
2 7 4
2 5 6
2 3 8
9 10
2 8 4
1 3
1 9
2 3 7
2 6 2
2 4 3
2 3 7
2 1 4
2 1 7
2 5 2
2 5 4
2 5 8
2 10 5
2 8 9
2 5 6
1 10
2 8 7
1 10
39 40
2 3 40
2 26 17
2 21 27
2 5 9
1 24
2 19 6
2 25 18
2 18 29...

output:


result:


Test #7:

score: 4
Accepted
time: 4ms
memory: 3692kb

input:

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

output:

3
4
3
4
2
3
4
3
2
4
3
3
3
5
2
3
5
5
5
3
2
3
3
2
13
4
4
3
1
3
2
2
3
4
4
3
4
2
4
3
4
4
2
3
4
4
3
1
1
3
3
1
4
4
24
4
4
2
4
3
2
2
2
1
3
4
4
2
1
5
4
3
4
0
4
4
4
3
2
4
4
4
4
5
1
3
4
3
3
2
3
2
3
3
4
4
3
1
3
4
3
2
3
3
1
2
35
1
4
3
3
4
4
2
3
3
3
2
4
3
4
3
3
1
3
2
2
17
3
4
2
3
4
11
4
4
3
4
2
9
2
5
2
2
3
3
4
3...

result:

ok 1000 numbers

Test #8:

score: 0
Runtime Error

input:

1000
1 10
1 7
1 7
2 10
1 8
1 3
1 8
1 3
2 10
1 1
1 9
1 1
1 9
5 10
1 7
1 6
1 4
1 3
1 10
1 7
1 6
1 4
1 3
1 10
29 40
1 9
1 15
1 29
1 20
1 8
1 30
1 27
1 7
1 24
1 8
1 23
1 17
1 10
1 28
1 26
1 19
1 15
1 33
1 16
1 14
1 10
1 30
1 20
1 40
1 22
1 10
1 31
1 38
1 5
2 28 9
2 15 6
2 39 29
2 20 31
2 8 38
2 30 25
1 ...

output:


result:


Test #9:

score: 0
Runtime Error

input:

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

output:


result:


Test #10:

score: 0
Runtime Error

input:

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

output:


result:


Test #11:

score: 0
Runtime Error

input:

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

output:


result:


Test #12:

score: 0
Runtime Error

input:

1000
89 100
2 7 10
2 44 79
2 90 72
2 81 82
2 97 98
1 26
2 12 11
2 19 22
2 75 76
2 87 57
2 93 20
2 14 15
1 18
2 52 56
2 63 65
1 52
2 19 69
2 17 30
1 80
2 87 88
2 32 79
2 65 57
2 10 99
2 74 71
1 90
2 61 62
2 61 40
2 15 59
2 78 53
1 71
2 82 36
2 29 8
2 17 18
2 92 67
2 81 63
2 4 5
2 51 54
2 14 13
1 62
2...

output:


result:


Test #13:

score: 0
Runtime Error

input:

1000
94 100
2 52 4
1 59
1 47
1 59
2 42 94
2 12 13
2 71 87
2 60 59
2 57 47
2 94 70
1 64
2 12 27
2 77 94
2 50 35
1 5
2 70 58
2 64 56
2 67 68
2 21 29
1 26
2 100 73
2 92 93
1 73
2 71 72
2 38 36
2 50 20
1 74
2 47 87
1 4
1 76
2 92 99
2 82 64
2 48 49
2 15 14
2 38 69
1 51
2 55 42
1 68
1 45
2 21 16
1 30
2 91...

output:


result:


Test #14:

score: 0
Runtime Error

input:

1000
88 90
2 59 42
1 45
2 68 83
2 36 2
2 89 70
1 7
1 8
2 67 55
2 81 47
2 76 36
1 68
2 86 27
1 8
1 12
1 4
2 64 21
2 11 1
2 6 69
2 39 58
2 39 40
1 3
2 39 76
1 62
2 43 69
1 53
1 79
2 78 65
2 85 1
1 75
2 47 87
2 26 41
2 17 38
1 2
2 25 41
2 86 71
1 37
2 31 80
1 14
2 47 12
2 66 78
2 28 83
1 57
1 69
2 53 6...

output:


result:


Test #15:

score: 4
Accepted
time: 89ms
memory: 42072kb

input:

1000
86 90
1 2
2 2 79
2 4 89
2 55 4
2 12 6
2 6 70
2 7 9
2 8 39
2 30 10
2 10 35
2 70 8
2 12 13
1 13
2 14 35
2 15 21
2 42 16
1 28
1 18
1 19
2 75 20
2 21 5
2 81 22
2 55 23
2 24 19
1 25
1 62
1 27
1 28
2 59 29
2 31 30
2 32 31
1 32
1 33
1 35
1 35
2 36 70
2 85 29
2 39 38
1 39
1 40
2 18 41
1 42
2 84 44
2 44...

output:

22
25
37
40
30
30
36
26
23
36
29
29
17
27
33
22
37
20
36
26
35
29
40
26
21
40
26
19
33
27
24
37
20
21
29
23
23
22
36
36
34
27
22
39
38
40
39
20
22
18
35
27
36
25
32
21
40
36
21
36
25
19
27
38
37
27
17
25
39
23
25
38
26
26
31
37
27
37
36
17
23
21
23
28
37
27
20
38
29
22
21
20
23
41
22
38
24
22
26
26
...

result:

ok 1000 numbers

Test #16:

score: 4
Accepted
time: 103ms
memory: 42996kb

input:

1000
90 90
2 25 2
2 27 3
2 85 4
2 5 4
2 19 6
2 6 7
2 50 7
2 9 69
1 10
1 11
1 11
1 13
2 14 16
1 15
1 16
2 88 16
1 26
2 76 19
2 19 20
1 20
1 22
2 53 22
2 26 24
1 25
2 25 26
2 8 61
1 23
2 66 29
2 21 30
1 31
2 32 1
2 67 32
2 56 34
1 34
2 36 35
1 36
2 37 40
2 20 39
1 40
2 65 41
2 64 42
2 74 54
2 24 44
2 ...

output:

21
37
29
38
19
27
36
38
23
21
23
38
37
24
19
23
32
27
37
39
18
25
30
28
25
28
24
29
21
32
18
26
34
27
39
29
31
21
21
29
22
31
37
19
27
25
20
36
27
22
37
26
30
24
37
27
35
36
41
27
39
40
16
19
26
24
21
21
37
36
256
36
37
21
37
15
24
24
23
19
39
29
27
38
26
28
38
26
26
40
38
38
19
27
28
38
21
28
20
38...

result:

ok 1000 numbers

Test #17:

score: 0
Runtime Error

input:

1000
76 90
1 3
1 83
1 67
1 28
1 17
1 63
1 16
1 13
1 27
1 75
1 12
1 85
1 19
1 40
1 30
1 32
1 58
1 20
1 83
1 72
1 50
1 11
1 53
1 39
1 3
1 58
1 71
1 31
1 6
1 35
1 20
1 62
1 43
1 63
1 32
1 51
1 55
1 73
1 33
1 8
1 34
1 21
1 55
1 44
1 50
1 81
1 84
1 88
1 65
1 53
1 28
1 40
1 14
1 77
1 4
1 87
1 13
1 89
1 11...

output:


result:


Test #18:

score: 0
Runtime Error

input:

1000
83 90
1 34
1 30
1 86
1 13
1 82
1 25
1 83
1 45
1 26
1 12
1 49
1 56
1 73
1 40
1 35
1 34
1 5
1 80
1 69
1 81
1 25
1 67
1 20
1 54
1 62
1 83
1 21
1 35
1 52
1 67
1 47
1 69
1 11
1 85
1 31
1 33
1 51
1 4
1 9
1 63
1 18
1 41
1 63
1 11
1 48
1 43
1 65
1 53
1 61
1 2
1 5
1 76
1 75
1 77
1 64
1 78
1 14
1 72
1 8
...

output:


result:


Test #19:

score: 0
Runtime Error

input:

1000
62 90
1 59
2 46 10
2 85 2
2 79 41
2 34 88
2 49 7
2 66 19
2 77 75
2 26 86
2 68 13
2 71 85
2 11 29
2 65 74
2 80 19
2 87 48
2 17 27
2 21 46
1 44
2 30 27
1 20
2 86 58
2 85 40
2 40 36
2 1 27
2 74 44
1 72
2 14 12
2 18 29
2 39 33
2 66 19
2 90 60
2 47 62
2 52 90
2 12 80
2 68 75
2 51 29
2 1 57
1 61
2 43...

output:


result:


Test #20:

score: 0
Runtime Error

input:

1000
65 90
2 33 90
2 61 28
2 39 71
2 58 78
2 9 41
2 70 84
2 20 64
2 26 3
2 73 57
2 21 4
2 89 88
2 69 85
2 82 55
2 20 39
2 5 27
2 9 42
2 64 25
2 85 81
2 26 3
1 15
2 87 60
2 86 1
2 10 22
2 66 28
2 66 12
2 19 14
2 8 33
2 84 70
2 11 39
1 16
2 75 37
2 47 39
1 51
2 78 57
2 19 18
2 77 74
2 59 15
2 76 65
2 ...

output:


result:


Test #21:

score: 0
Runtime Error

input:

1000
76 90
2 15 3
2 61 68
2 35 15
2 67 86
1 36
1 40
2 13 12
2 30 37
2 14 64
2 29 68
2 15 14
2 17 25
2 11 12
2 79 13
2 62 7
2 35 1
2 42 71
2 33 38
1 85
2 47 17
2 39 37
2 60 6
1 77
1 57
2 39 29
1 71
2 30 47
2 30 33
2 64 79
2 42 77
2 45 38
2 33 1
2 75 76
2 18 26
1 18
2 57 56
2 19 55
2 7 81
2 53 19
2 56...

output:


result:


Test #22:

score: 0
Runtime Error

input:

1000
80 90
2 48 50
2 20 23
2 82 8
1 4
1 40
2 69 59
2 13 67
2 6 86
2 3 74
2 9 38
1 9
1 79
1 18
2 15 14
1 31
2 77 21
2 33 72
2 56 39
2 32 33
2 90 89
2 86 83
2 90 13
2 34 26
2 23 68
1 50
2 65 83
1 77
2 79 69
2 25 26
2 44 43
2 74 84
2 13 12
1 62
1 71
2 26 70
2 2 83
2 7 20
2 23 1
2 11 12
2 78 7
1 58
1 65...

output:


result:


Test #23:

score: 0
Runtime Error

input:

1000
82 90
2 36 58
2 64 41
2 1 12
2 6 90
2 50 15
2 30 27
2 42 87
2 89 33
2 47 28
1 70
1 17
1 20
2 33 62
2 31 7
2 4 69
2 83 37
2 55 36
2 35 32
2 29 11
1 57
2 53 52
2 9 53
2 88 66
1 21
1 22
2 28 39
2 11 12
1 5
2 78 56
2 59 57
2 63 8
2 85 62
2 84 16
2 48 49
2 7 61
2 3 9
1 4
1 50
1 80
2 62 43
2 77 50
2 ...

output:


result:


Test #24:

score: 0
Runtime Error

input:

1000
83 90
2 71 72
2 6 16
2 78 3
2 24 25
2 39 65
2 19 9
2 10 14
1 30
2 86 65
2 17 18
1 47
2 69 68
1 7
2 64 7
2 31 68
2 90 89
2 85 4
2 22 79
2 12 62
2 56 66
1 83
1 88
2 43 45
2 50 20
2 15 14
2 38 59
1 32
1 80
2 33 6
1 61
2 15 41
2 47 20
2 78 52
2 1 13
1 18
2 6 63
2 70 62
2 25 27
1 74
2 8 2
2 65 41
2 ...

output:


result:


Test #25:

score: 0
Runtime Error

input:

1000
80 90
2 66 52
2 74 17
2 42 71
2 59 58
2 86 21
1 81
2 25 63
1 52
1 1
1 25
2 2 22
1 89
1 39
1 28
2 78 85
2 67 76
1 85
2 30 31
2 12 13
2 25 38
1 33
2 38 71
1 9
2 62 61
1 16
1 54
2 52 66
2 5 15
2 14 13
2 69 3
2 70 66
2 37 25
2 21 27
2 34 6
2 44 85
2 12 33
1 75
2 51 53
2 4 45
2 39 82
1 26
1 15
2 46 ...

output:


result: