QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#190668#2830. Data StructureqzezAC ✓102ms29588kbC++144.4kb2023-09-29 12:17:252023-09-29 12:17:25

Judging History

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

  • [2023-09-29 12:17:25]
  • 评测
  • 测评结果:AC
  • 用时:102ms
  • 内存:29588kb
  • [2023-09-29 12:17:25]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
template<typename T>
ostream& operator << (ostream &out,const vector<T>&x){
	if(x.empty())return out<<"[]";
	out<<'['<<x[0];
	for(int len=x.size(),i=1;i<len;i++)out<<','<<x[i];
	return out<<']';
}
template<typename T>
ostream& operator << (ostream &out,const pair<T,T>&x){
	return out<<x.first;
}
template<typename T>
vector<T> ary(const T *a,int l,int r){
	return vector<T>{a+l,a+1+r};
}
template<typename T>
void debug(T x){
	cerr<<x<<'\n';
}
template<typename T,typename ...S>
void debug(T x,S ...y){
	cerr<<x<<' ',debug(y...);
}
const int N=2e5+10;
int n,m,in[N],out[N];
vector<int>ept,ok,only[N];
vector<pair<int,int> >to[N];
void addedge(int u,int v,int i){
	// debug("edges",u,v);
	out[u]++,in[v]++;
	to[u].push_back({v,i});
	to[v].push_back({u,-i});
}
#define v e.first
#define w e.second
int vis[N];
bool judge(int u,int fa=0){
	vis[u]=1;
	for(auto e:to[u])if(v^fa){
		if(judge(v,u))return 1;
	}
	return out[u]==2;
}
void cover(int u){
	if(vis[u])return;
	vis[u]=1;
	for(auto e:to[u])cover(v);
}
int k,id[N],p[N];
void find(int u,int las=0){
	if(vis[u])return;
	vis[u]=1,id[++k]=u,p[k]=las;
	for(auto e:to[u])find(v,w);
}
vector<pair<int,int> >ans;
void opt(int x,int y){
	ans.push_back({abs(x),abs(y)});
}
#define Assert(x) for(int _=x;!_;);
bool solve1(int s){
	k=0,find(s);
	// for(int i=1;i<=k;i++)debug(id[i],only[id[i]]);
	// return 1;
	// debug(only[s]);
	// Assert(!only[id[1]].empty());
	p[1]=only[id[1]].back(),only[id[1]].pop_back();
	// Assert(!only[id[k]].empty());
	p[k+1]=only[id[k]].back(),only[id[k]].pop_back();
	// debug(ary(id,1,k),ary(p,1,k+1));
	vector<int>t{1};
	for(int i=1;i<=k;i++)if(out[id[i]]==2)t.push_back(i);
	// debug("t",t);
	for(int len=t.size(),i=1;i<len;i++){
		int l=t[i-1],r=t[i],id=-1;
		for(int i=l+1;i<r;i++)if(in[::id[i]]==2)id=i;
		if(ept.empty())return 0;
		int x=ept.back();
		ept.pop_back();
		opt(p[r],x);
		if(~id){
			for(int i=l;i<id;i++)opt(p[i+1],p[i]);
			for(int i=r-1;i>id;i--)opt(p[i],p[i+1]);
			int x=p[id],y=p[id+1];
			opt(x,y),ept.push_back(x);
		}else{
			for(int i=r-1;i>=l;i--)opt(p[i],p[i+1]);
			ept.push_back(p[l]);
		}
		p[r]=abs(x);
		// debug(l,r,ans);
	}
	int l=t.back(),r=k+1,id=-1;
	for(int i=l+1;i<r;i++)if(in[::id[i]]==2)id=i;
	// debug("id",id,l+1,r-1);
	if(~id){
		for(int i=l;i<id;i++)opt(p[i+1],p[i]);
		for(int i=r-1;i>id;i--)opt(p[i],p[i+1]);
		int x=p[id],y=p[id+1];
		opt(x,y),ept.push_back(x);
	}else{
		if(p[k]>0){
			for(int i=l;i<r;i++)opt(p[i+1],p[i]);
			ept.push_back(p[r]);
		}else{
			for(int i=r;i>l;i--)opt(p[i-1],p[i]);
			ept.push_back(p[l]);
		}
	}
	return 1;
}
bool solve2(int s){
	// debug("ok1");
	int x=-1,y=-1;
	for(auto e:to[s])if(w>0)x=v,y=w;
	// Assert(find(to[s].begin(),to[s].end(),make_pair(x,y))!=to[s].end());
	// Assert(find(to[x].begin(),to[x].end(),make_pair(s,-y))!=to[x].end());
	to[s].erase(find(to[s].begin(),to[s].end(),make_pair(x,y)));
	to[x].erase(find(to[x].begin(),to[x].end(),make_pair(s,-y)));
	out[s]--,in[x]--;
	// debug(s,x,to[s],to[x]);
	if(ept.empty())return 0;
	int z=ept.back();
	ept.pop_back();
	opt(y,z);
	only[s].push_back(z);
	only[x].push_back(y);
	return solve1(s);
}
#undef v
#undef w
bool get(){
	for(int i=1,x,u,v;i<=m;i++){
		scanf("%d",&x);
		if(!x)ept.push_back(i);
		else if(x==1)scanf("%d",&u),only[u].push_back(i);
		else if(scanf("%d%d",&u,&v),u!=v)addedge(v,u,i);
		else ok.push_back(u);
	}
	// for(int i=1;i<=n;i++)debug("to",i,to[i]);
	fill(vis+1,vis+1+n,0);
	for(int x:ok)vis[x]=1;
	vector<int>t[3];
	for(int i=1;i<=n;i++){
		if(!vis[i]&&to[i].size()<=1){
			if(judge(i))t[1].push_back(i);
			else t[0].push_back(i);
		}
	}
	// debug(ary(t,0,2));
	for(int i=1;i<=n;i++){
		if(!vis[i]&&out[i]==2)t[2].push_back(i),cover(i);
	}
	for(int i=1;i<=n;i++){
		if(!vis[i])t[2].push_back(i),cover(i);
	}
	// debug(ary(t,0,2));
	fill(vis+1,vis+1+n,0);
	// debug("ok1");
	for(int i:t[0]){
		if(!solve1(i))return 0;
	}
	for(int i:t[1]){
		if(!solve1(i))return 0;
	}
	for(int i:t[2]){
		if(!solve2(i))return 0;
	}
	printf("%d\n",(int)ans.size());
	for(auto x:ans)printf("%d %d\n",x.first,x.second);
	return 1;
}
void clr(){
	ept.clear(),ans.clear(),ok.clear();
	for(int i=1;i<=n;i++){
		only[i].clear(),to[i].clear();
		in[i]=out[i]=0;
	}
}
int main(){
	for(;~scanf("%d%d",&n,&m);clr())if(!get())puts("-1");
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

2 3
2 1 2
2 1 2
0
1 1
2 1 1
3 4
2 1 3
2 2 3
1 1
1 2

output:

3
2 3
1 3
2 1
0
-1

result:

ok 3 cases passed. max #moves/#balls = 1.500000000

Test #2:

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

input:

1 2
1 1
1 1
1 3
1 1
0
1 1
1 4
1 1
1 1
0
0
1 1
2 1 1
1 2
2 1 1
0
1 3
0
0
2 1 1

output:

1
1 2
1
1 3
1
1 2
0
0
0

result:

ok 6 cases passed. max #moves/#balls = 1.000000000

Test #3:

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

input:

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

output:

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

result:

ok 27 cases passed. max #moves/#balls = 1.500000000

Test #4:

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

input:

3 6
1 1
1 2
1 2
1 3
1 3
1 1
3 7
1 3
0
1 2
1 2
1 1
1 1
1 3
3 8
0
1 3
1 2
0
1 1
1 1
1 2
1 3
3 6
1 3
1 3
1 2
1 1
1 1
1 2
3 7
1 1
1 3
1 1
1 2
1 2
1 3
0
3 8
1 1
1 2
0
1 3
1 2
0
1 3
1 1
3 6
1 3
1 1
1 2
1 3
1 2
1 1
3 7
1 1
1 2
0
1 1
1 3
1 3
1 2
3 8
1 2
1 1
1 3
1 2
0
1 3
0
1 1
3 6
1 2
1 2
1 3
1 1
1 1
1 3
3 ...

output:

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

result:

ok 180 cases passed. max #moves/#balls = 1.333333333

Test #5:

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

input:

4 8
1 3
1 3
1 4
1 1
1 2
1 1
1 4
1 2
4 9
1 3
0
1 2
1 1
1 4
1 1
1 4
1 2
1 3
4 10
1 1
1 3
1 3
1 2
1 2
0
1 1
1 4
1 4
0
4 8
1 4
1 3
1 2
1 2
1 1
1 4
1 1
1 3
4 9
1 4
1 3
1 1
1 3
1 4
1 2
1 1
1 2
0
4 10
1 4
1 1
1 2
1 3
0
0
1 2
1 1
1 3
1 4
4 8
1 2
1 4
1 3
1 4
1 2
1 3
1 1
1 1
4 9
1 1
1 4
1 3
1 2
1 3
1 2
0
1 4
...

output:

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

result:

ok 1575 cases passed. max #moves/#balls = 1.500000000

Test #6:

score: 0
Accepted
time: 28ms
memory: 14068kb

input:

5 10
1 1
1 4
1 2
1 4
1 5
1 2
1 3
1 5
1 1
1 3
5 11
1 1
1 3
1 1
1 2
1 5
1 2
0
1 5
1 4
1 3
1 4
5 12
1 2
0
1 1
1 5
1 2
1 4
1 3
1 4
0
1 5
1 3
1 1
5 10
1 3
1 5
1 1
1 1
1 2
1 4
1 4
1 5
1 2
1 3
5 11
1 3
1 5
1 2
1 2
1 4
1 3
1 1
1 1
0
1 4
1 5
5 12
1 3
1 4
1 2
0
1 5
1 1
1 2
1 1
1 4
1 5
0
1 3
5 10
1 4
1 5
1 3
1...

output:

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

result:

ok 17010 cases passed. max #moves/#balls = 1.400000000

Test #7:

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

input:

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

output:

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

result:

ok 14285 cases passed. max #moves/#balls = 1.500000000

Test #8:

score: 0
Accepted
time: 28ms
memory: 14344kb

input:

7 10
2 4 3
1 1
2 2 2
2 4 3
2 7 7
2 6 6
2 5 5
0
1 1
0
7 12
1 2
1 6
1 6
1 5
2 4 1
1 1
2 4 3
1 7
1 5
1 3
1 2
1 7
7 15
1 4
1 6
1 2
1 4
1 6
1 5
1 7
1 1
1 3
0
1 7
1 5
1 1
1 3
1 2
7 7
2 7 3
2 2 3
2 5 7
2 1 1
2 6 6
2 2 5
2 4 4
7 12
2 3 2
1 7
2 6 3
1 4
1 2
1 5
1 1
1 4
1 5
1 1
1 6
1 7
7 14
2 3 5
0
1 2
1 6
1 4...

output:

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

result:

ok 12500 cases passed. max #moves/#balls = 1.428571429

Test #9:

score: 0
Accepted
time: 26ms
memory: 16084kb

input:

8 16
1 2
0
1 5
1 8
1 1
1 5
2 4 4
1 8
1 6
1 1
1 2
0
2 7 7
1 3
1 6
1 3
8 13
1 8
1 4
1 2
1 6
2 1 3
2 1 3
1 7
1 2
1 5
1 6
1 8
2 4 5
1 7
8 9
2 1 3
2 4 5
2 7 2
2 7 8
2 4 8
2 1 6
2 5 2
2 6 3
0
8 17
1 1
1 4
1 3
1 7
1 2
1 2
1 7
1 5
1 3
1 4
1 6
1 8
1 5
1 6
1 8
1 1
0
8 15
1 6
1 4
0
1 5
1 7
1 3
1 2
1 8
1 6
1 7
...

output:

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

result:

ok 11111 cases passed. max #moves/#balls = 1.500000000

Test #10:

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

input:

9 13
1 2
2 4 5
2 5 4
2 2 9
1 8
1 3
1 1
1 3
1 1
2 7 6
1 9
1 8
2 7 6
9 13
1 4
2 5 6
2 7 5
2 9 3
1 4
2 9 7
0
2 8 6
2 1 3
0
1 2
1 2
2 8 1
9 18
1 4
1 7
1 7
1 9
1 8
1 8
1 2
1 3
1 6
1 2
1 1
1 3
1 5
1 1
1 6
1 5
1 4
1 9
9 13
0
2 6 7
2 2 2
1 3
2 6 8
2 9 1
2 1 4
1 9
2 8 7
0
1 4
1 3
2 5 5
9 17
1 9
2 1 3
1 2
1 5...

output:

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

result:

ok 10000 cases passed. max #moves/#balls = 1.444444444

Test #11:

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

input:

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

output:

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

result:

ok 9090 cases passed. max #moves/#balls = 1.500000000

Test #12:

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

input:

11 15
2 11 11
2 3 3
1 2
0
2 8 5
1 2
2 6 4
2 4 5
1 1
1 1
1 9
1 10
2 8 6
2 7 7
2 9 10
11 17
2 4 8
1 11
2 6 7
1 9
1 9
1 5
1 2
1 2
1 5
1 10
1 3
1 1
1 11
2 10 8
1 1
2 3 7
2 4 6
11 21
1 10
1 6
1 3
1 9
1 8
1 1
1 5
1 10
1 5
1 4
1 8
1 9
1 11
1 6
1 11
1 7
1 1
1 4
2 2 2
1 7
1 3
11 15
1 5
1 1
1 2
2 3 3
2 10 7
0...

output:

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

result:

ok 8333 cases passed. max #moves/#balls = 1.363636364

Test #13:

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

input:

12 25
1 9
1 10
1 4
1 7
1 5
1 3
1 6
1 1
1 12
1 3
1 2
1 9
1 11
1 2
0
1 10
1 7
1 12
1 11
1 4
1 6
1 5
1 1
1 8
1 8
12 19
1 2
1 12
2 8 8
2 1 3
0
2 3 4
1 5
2 11 11
2 1 5
2 9 6
1 12
1 7
1 7
2 6 9
1 2
1 4
1 10
1 10
0
12 14
2 2 4
2 8 8
2 1 3
2 9 9
2 6 12
2 6 1
0
2 10 10
2 5 5
2 3 12
0
2 4 7
2 7 2
2 11 11
12 1...

output:

12
8 23
11 14
6 10
3 20
5 22
7 21
4 17
24 25
1 12
2 16
13 19
9 18
11
1 15
6 16
4 6
9 7
4 9
12 13
17 18
2 11
10 2
14 10
2 14
9
10 11
5 11
3 10
6 3
5 6
13 5
12 13
1 12
5 1
10
14 13
7 5
8 13
3 8
1 3
1 7
12 5
4 12
6 4
14 6
12
11 24
7 14
5 19
1 10
12 21
16 25
2 6
4 20
8 22
9 17
3 13
15 18
11
2 12
4 5
10 ...

result:

ok 7692 cases passed. max #moves/#balls = 1.416666667

Test #14:

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

input:

13 15
2 8 8
2 6 6
2 1 1
2 3 3
2 11 11
2 2 5
2 5 13
1 4
1 12
2 2 13
1 12
2 10 10
1 4
2 9 9
2 7 7
13 21
2 11 11
1 9
1 2
1 9
1 13
1 1
1 13
1 5
2 12 8
2 7 7
1 5
1 6
1 6
2 4 3
1 1
0
2 10 10
1 2
2 4 3
0
2 8 12
13 24
1 8
1 7
1 6
1 3
1 5
1 9
1 2
1 13
1 2
1 12
2 10 10
1 3
1 1
1 8
1 4
1 12
1 6
1 5
1 7
1 4
2 1...

output:

6
8 13
9 11
10 9
7 9
6 7
10 6
12
6 15
3 18
8 11
12 13
2 4
5 7
19 5
14 5
19 14
9 19
21 9
19 21
11
13 23
7 9
4 12
15 20
5 18
3 17
2 19
1 14
6 24
10 16
8 22
12
8 15
10 6
9 7
10 9
13 20
3 17
4 16
1 11
2 14
19 2
5 2
19 5
12
10 16
1 27
9 18
12 26
4 20
5 23
8 14
3 6
7 17
11 19
2 25
21 22
13
3 17
11 15
2 9
...

result:

ok 7142 cases passed. max #moves/#balls = 1.384615385

Test #15:

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

input:

14 24
1 3
1 11
1 2
1 7
1 5
0
1 11
2 4 8
2 12 5
2 9 4
1 3
1 10
2 12 9
1 1
0
2 13 13
1 2
1 7
1 6
1 10
1 14
1 1
1 6
2 8 14
14 27
1 8
1 10
1 1
1 1
1 12
1 14
1 6
1 11
1 5
1 12
1 7
1 4
1 10
1 14
1 7
1 9
1 2
1 6
1 11
1 9
2 3 3
1 2
1 4
1 13
1 8
1 5
1 13
14 22
1 14
2 7 5
1 3
1 10
1 9
1 9
2 13 5
2 12 2
2 6 6
...

output:

13
14 22
3 17
1 11
9 5
24 21
8 24
10 8
13 10
9 13
19 23
4 18
12 20
2 7
13
3 4
17 22
12 23
9 26
7 18
11 15
1 25
16 20
2 13
8 19
5 10
24 27
6 14
12
19 22
8 13
11 8
3 15
5 6
4 21
14 20
1 17
7 1
2 1
10 2
7 10
13
4 15
16 25
6 21
7 12
11 18
2 19
14 17
1 3
9 10
8 20
23 8
13 8
23 13
14
8 19
4 9
7 23
3 28
22...

result:

ok 6666 cases passed. max #moves/#balls = 1.357142857

Test #16:

score: 0
Accepted
time: 31ms
memory: 16080kb

input:

15 22
0
2 6 13
1 13
1 4
1 8
1 8
0
2 10 3
2 11 15
2 15 7
1 5
2 2 12
2 11 12
1 6
1 7
2 9 9
1 5
2 1 1
2 3 10
2 14 14
1 4
1 2
15 24
1 2
1 4
2 8 11
1 9
0
1 1
2 5 5
1 9
2 6 6
1 12
1 3
1 3
2 7 13
2 11 10
1 14
1 12
2 10 4
1 15
2 8 7
1 2
0
1 1
1 15
2 13 14
15 24
0
1 14
1 14
2 1 1
1 10
1 12
1 5
2 10 6
1 13
1 ...

output:

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

result:

ok 6250 cases passed. max #moves/#balls = 1.400000000

Test #17:

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

input:

16 23
1 3
1 9
0
1 9
1 14
1 4
2 5 14
1 10
2 16 5
2 6 6
2 1 1
2 16 11
2 12 12
1 2
1 4
0
2 8 8
2 11 13
1 7
1 10
2 2 15
2 3 15
2 7 13
16 29
0
1 6
1 3
1 7
1 14
1 12
1 9
1 3
1 10
1 14
1 13
1 2
2 6 9
1 4
1 2
2 5 1
1 8
1 16
1 4
2 1 5
1 11
1 7
2 8 10
1 15
1 12
1 11
1 15
1 16
1 13
16 28
1 13
1 8
1 9
1 12
2 15...

output:

14
6 15
2 4
8 20
21 8
14 21
22 8
1 22
23 1
19 23
18 1
12 18
7 5
9 7
12 9
17
12 15
3 8
14 19
13 7
2 13
4 22
23 9
17 23
21 26
6 25
11 29
5 10
24 27
18 28
16 18
20 16
18 20
16
13 20
7 25
16 27
6 28
19 26
12 23
9 22
2 14
24 3
15 24
10 21
4 17
1 11
18 1
5 1
18 5
15
15 21
10 19
8 14
12 18
1 13
7 23
17 7
6...

result:

ok 5882 cases passed. max #moves/#balls = 1.375000000

Test #18:

score: 0
Accepted
time: 22ms
memory: 14072kb

input:

17 33
1 12
2 15 4
1 5
1 13
0
1 6
1 17
1 16
1 7
1 11
1 13
1 17
1 1
1 11
1 12
1 9
1 3
1 7
1 5
1 3
1 2
1 9
1 14
2 15 4
1 1
1 10
1 10
1 8
1 2
1 16
1 14
1 8
1 6
17 23
1 9
2 13 17
1 3
1 13
1 10
2 15 16
2 12 12
2 14 4
2 5 15
1 9
1 7
1 6
2 8 8
1 2
2 4 11
1 11
2 16 5
2 2 10
1 3
1 6
2 1 1
2 14 17
1 7
17 20
2 ...

output:

18
13 25
21 29
17 20
3 19
6 33
9 18
28 32
16 22
26 27
10 14
1 15
4 11
23 31
8 30
7 12
24 7
2 7
24 2
16
18 5
14 18
3 19
12 20
11 23
1 10
22 1
15 16
8 15
8 22
2 1
4 2
17 4
6 17
9 6
4 9
15
6 17
20 6
11 6
5 11
16 5
14 16
9 14
20 9
13 20
4 20
13 4
2 13
18 2
10 18
13 10
18
25 28
9 21
5 11
13 31
4 24
12 20...

result:

ok 5555 cases passed. max #moves/#balls = 1.352941176

Test #19:

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

input:

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

output:

19
6 5
2 5
19 6
2 19
11 2
9 2
10 9
18 10
1 18
11 1
16 11
13 11
16 13
14 16
3 14
16 3
7 16
12 7
16 12
21
15 16
9 18
3 20
10 21
5 6
4 14
8 25
17 23
24 17
11 17
12 11
26 24
12 26
22 12
19 12
13 22
1 13
19 1
7 19
2 7
19 2
14
10 12
6 13
16 23
15 16
11 16
2 11
19 2
7 19
4 15
20 4
7 20
17 7
14 17
7 14
-1
1...

result:

ok 5263 cases passed. max #moves/#balls = 1.388888889

Test #20:

score: 0
Accepted
time: 26ms
memory: 16100kb

input:

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

output:

20
13 25
4 22
6 14
10 6
9 3
10 9
18 24
5 18
21 10
1 18
12 1
8 12
20 8
11 20
23 11
16 23
15 16
15 21
17 10
5 17
18
22 20
9 22
17 33
9 17
26 32
15 21
5 14
4 13
7 28
30 34
10 18
1 27
11 25
12 16
19 29
2 3
23 24
8 31
-1
21
24 25
5 7
17 23
14 19
18 21
2 9
11 27
4 11
6 2
1 11
15 1
15 6
8 2
20 4
8 20
22 8
...

result:

ok 5000 cases passed. max #moves/#balls = 1.368421053

Test #21:

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

input:

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

output:

20
9 19
5 30
1 18
6 22
15 28
23 26
13 21
10 29
14 27
11 34
16 24
17 20
7 32
3 33
2 4
12 35
25 12
36 25
8 36
12 8
22
12 14
9 22
26 27
7 25
10 11
24 10
18 7
13 10
20 13
20 18
19 7
24 19
15 24
4 24
17 15
5 17
4 5
23 4
1 4
2 23
16 2
1 16
21
12 16
21 28
7 13
14 24
2 10
20 22
9 17
18 26
4 11
8 29
23 30
19...

result:

ok 4761 cases passed. max #moves/#balls = 1.300000000

Test #22:

score: 0
Accepted
time: 13ms
memory: 16344kb

input:

70 79
2 13 14
2 49 46
1 43
2 27 27
2 5 5
2 63 50
2 63 15
2 61 25
2 17 39
2 44 26
2 15 45
2 65 2
2 64 6
2 2 28
2 55 60
2 13 68
1 40
2 30 30
1 62
2 41 60
2 16 25
1 69
1 62
2 28 23
2 46 49
2 26 57
1 35
2 66 66
2 10 69
2 33 55
1 10
2 54 9
1 32
2 11 12
1 40
1 7
1 29
2 33 54
2 12 11
2 22 1
1 29
2 6 64
2 2...

output:

79
36 45
29 22
31 29
37 41
33 75
27 62
17 35
3 47
44 50
19 23
52 19
26 44
40 19
63 40
9 63
10 26
72 10
9 72
60 44
52 60
61 52
15 9
32 52
38 32
30 15
38 30
68 38
20 9
20 68
79 38
78 61
79 78
65 79
1 79
16 65
1 16
21 1
55 20
8 1
69 8
69 55
67 20
54 67
21 54
74 21
6 69
11 21
7 11
7 6
73 69
76 74
51 76
...

result:

ok 1000 cases passed. max #moves/#balls = 1.500000000

Test #23:

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

input:

89 125
2 6 86
1 11
1 43
1 77
1 27
2 72 88
1 52
2 26 75
1 77
2 89 86
1 60
1 18
2 20 20
1 25
2 57 75
1 3
1 55
2 38 19
2 76 2
2 22 24
1 3
2 61 61
2 39 59
2 42 74
1 56
2 71 71
1 68
2 79 87
2 81 67
1 25
2 66 21
1 37
1 70
2 40 83
1 60
1 48
1 52
2 22 24
2 62 62
1 84
2 41 23
1 69
2 32 26
1 36
1 15
2 88 72
1...

output:

88
16 21
48 92
54 93
2 105
79 88
59 96
57 107
45 114
85 91
12 108
14 30
5 47
73 116
51 78
56 112
44 87
32 117
3 75
110 113
82 118
61 98
36 94
62 76
7 37
17 123
25 90
95 109
11 35
27 122
42 52
33 115
83 119
4 9
40 64
67 40
34 67
77 34
19 40
70 19
63 106
70 63
102 70
49 70
80 102
49 80
60 49
55 49
58 ...

result:

ok 100 cases passed. max #moves/#balls = 1.169811321

Test #24:

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

input:

199990 199994
2 112787 58235
2 74630 28941
2 167642 28933
2 133872 119903
2 134119 187247
2 12074 126849
2 172463 191232
2 69306 129651
2 85342 121061
2 31874 148765
2 6567 39825
2 70847 178127
2 161417 173942
2 60884 49005
2 10700 112396
2 134185 131889
2 62930 176558
2 153356 48329
2 88968 136672
...

output:

249866
149868 199994
55718 149868
174021 55718
154492 174021
33532 199994
98071 154492
33532 98071
146781 33532
40140 174021
3409 40140
127577 3409
127577 146781
78541 127577
183763 33532
177569 183763
39870 177569
128051 39870
40416 128051
47653 40416
24457 47653
139428 24457
94458 139428
25835 785...

result:

ok 1 cases passed. max #moves/#balls = 1.249392470

Test #25:

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

input:

199900 199939
2 159852 65847
2 26090 50275
2 87513 124862
2 86896 171149
2 108960 21092
2 60944 176432
2 64408 168417
2 110938 48609
2 30886 178149
2 180183 52005
2 185615 173446
2 91034 36919
2 121714 75547
2 97679 89549
2 161524 190571
2 129781 26065
2 726 162459
2 28052 166745
2 193665 65435
2 45...

output:

249613
173762 199939
106581 195508
61879 106581
61879 173762
53630 61879
58652 199939
10636 58652
160710 53630
38522 160710
10636 38522
154767 10636
101776 61879
42645 154767
36502 42645
101776 36502
17420 101776
183655 10636
139484 183655
98577 17420
145079 98577
139484 145079
50336 139484
148363 1...

result:

ok 1 cases passed. max #moves/#balls = 1.248689345

Test #26:

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

input:

199000 199158
2 87128 180318
2 51427 22755
2 151883 144846
2 86404 42933
2 86031 56171
2 97601 190366
2 100929 91717
2 10606 53797
2 151688 90226
2 65599 83910
2 159670 153323
2 98395 126956
2 104190 188119
2 134860 5110
2 82527 59574
2 185228 58544
2 131591 9348
2 88390 99580
2 79913 120984
2 12854...

output:

248620
84174 199158
26569 84174
188145 26569
39533 188145
83406 199158
51106 83406
51106 39533
5736 51106
52620 188145
105904 5736
87709 105904
52620 87709
37206 52620
146489 51106
154600 146489
101799 154600
140533 101799
170499 140533
170499 37206
147032 170499
61933 52620
116054 147032
106217 116...

result:

ok 1 cases passed. max #moves/#balls = 1.249346734

Test #27:

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

input:

190000 195490
2 57925 137657
2 115225 31941
2 113825 126389
2 86640 44883
2 54487 34585
2 118366 61471
2 120619 96922
1 140665
2 42131 138488
2 115971 83797
2 79814 139047
2 182772 4122
2 134485 135722
2 83056 53620
2 4840 71513
2 58767 175090
2 55378 47553
2 158331 65564
2 2231 167672
2 45248 44008...

output:

234894
115305 173688
176707 97295
127754 176707
59173 162528
10703 123606
54502 10703
170287 138210
47321 170287
84253 104626
45610 24404
95329 45610
153181 95329
84253 153181
100881 72239
72368 100881
135710 46573
98043 135710
13885 98043
180497 54413
5062 180497
38272 5062
154636 191315
79739 1437...

result:

ok 1 cases passed. max #moves/#balls = 1.236284211

Test #28:

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

input:

100000 150784
1 11363
2 48695 10015
1 45261
0
0
2 59469 34868
2 37754 54971
2 1159 2258
2 36656 7427
1 86418
0
2 58664 20429
1 53392
1 61881
2 17499 14399
1 31182
1 7141
0
2 58765 17577
1 21750
2 55759 24096
0
0
2 68221 45178
1 34307
1 952
0
1 37862
1 31349
2 79909 53730
2 61993 40470
0
1 8272
2 824...

output:

111036
111937 43798
56855 111937
27095 32591
103272 27095
56699 110128
145196 56699
46437 145196
4709 37327
44860 53932
112971 77316
2285 112971
44860 2285
110814 134183
60023 110814
58137 63677
102804 58137
85477 102804
12514 126560
40604 80635
80772 119260
40747 80772
107886 8863
61496 107886
6650...

result:

ok 1 cases passed. max #moves/#balls = 1.110360000

Test #29:

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

input:

199998 200000
2 197320 165241
2 136684 67821
2 38136 196111
2 36675 168634
2 193814 85383
2 188893 178378
2 107377 34791
2 77322 157440
2 51337 91683
2 141729 123337
2 88834 166216
2 172041 99918
2 81678 190214
2 145905 79139
2 184733 143722
2 20662 175460
2 73374 152647
2 111949 12058
2 7347 64349
...

output:

250095
181365 200000
21514 199999
171410 200000
97712 171410
52612 97712
119503 52612
138016 119503
28740 138016
169576 21514
36185 169576
8836 36185
74434 8836
28740 74434
130769 28740
91173 199999
77064 91173
77064 130769
72711 77064
11747 28740
185560 11747
77786 72711
185560 77786
99645 185560
1...

result:

ok 1 cases passed. max #moves/#balls = 1.250487505