QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#376709#6545. Connect the DotsWorld_CreaterWA 1ms5744kbC++141.6kb2024-04-04 15:34:392024-04-04 15:34:39

Judging History

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

  • [2024-04-04 15:34:39]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:5744kb
  • [2024-04-04 15:34:39]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int n,m,a[200005],cnt[200005],lst[200005],nxt[200005],vis[200005];
priority_queue<pair<int,int> > q;
vector<pair<int,int> > ans;
void checkadd(int x)
{
	if(!x) return ;
	// cerr<<"Add:"<<x<<' '<<lst[x]<<" "<<nxt[x]<<" "<<a[lst[x]]<<" "<<a[nxt[x]]<<"\n";
	if(nxt[x]&&lst[x]&&a[nxt[x]]!=a[lst[x]]) q.emplace(-cnt[a[x]],x);
}
void del(int x,int op)
{
	if(!x) return ;
	if(!op&&(!lst[x]||!nxt[x]||a[nxt[x]]==a[lst[x]])) return ;
	cnt[a[x]]--;
	nxt[lst[x]]=nxt[x];
	lst[nxt[x]]=lst[x];
	if(nxt[x]&&lst[x]&&a[nxt[x]]!=a[lst[x]]) ans.emplace_back(lst[x],nxt[x]);
	checkadd(lst[x]);
	checkadd(nxt[x]);
}
int main()
{
	ios::sync_with_stdio(false);
	int t;
	cin>>t;
	while(t--)
	{
		cin>>n>>m;
		nxt[0]=1;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			cnt[a[i]]++;
			lst[i]=i-1;
			nxt[i]=(i+1)%(n+1);
			if(i>1&&a[i]!=a[i-1]) ans.emplace_back(i-1,i);
		}
		for(int i=1;i<=n;i++) checkadd(i);
		q.emplace(-(n+1),n+1);
		while(!q.empty())
		{
			auto [y,x]=q.top();
			// cerr<<x<<" "<<y<<"\n";
			if(x==n+1&&nxt[nxt[nxt[0]]])
			{
				del(nxt[nxt[0]],1);
				continue ;
			}
			q.pop();
			if(x==n+1) continue ;
			if(vis[x]) continue ;
			vis[x]=1;
			if(y==-1)
			{
				for(int i=lst[x];lst[i];i=lst[i]) del(i,0);
				for(int i=nxt[x];nxt[i];i=nxt[i]) del(i,0);
				del(x,0);
				break ;
			}
			del(x,0);
		}
		cout<<ans.size()<<"\n";
		for(auto [l,r]:ans)
		{
			cout<<l<<" "<<r<<"\n";
		}
		while(!q.empty()) q.pop();
		ans.clear();
		for(int i=1;i<=n;i++)
		{
			cnt[a[i]]=0;
			vis[i]=0;
		}
	}
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3588kb

input:

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

output:

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

result:

ok all 3 test passed

Test #2:

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

input:

1
2 2
1 2

output:

1
1 2

result:

ok all 1 test passed

Test #3:

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

input:

10
5 2
2 2 2 1 2
5 2
2 1 2 1 2
5 2
1 2 2 2 1
5 2
2 1 2 1 1
5 2
1 1 1 2 1
5 2
1 2 2 1 2
5 2
2 1 1 2 2
5 2
2 2 2 1 1
5 2
1 1 2 1 2
5 2
1 2 2 2 1

output:

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

result:

ok all 10 test passed

Test #4:

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

input:

10
7 2
1 2 1 1 1 2 1
7 2
1 1 2 1 2 1 2
7 2
2 2 1 1 2 1 1
7 2
1 1 1 2 2 1 1
7 2
1 2 2 1 2 2 1
7 2
2 1 2 2 2 2 1
7 2
1 2 1 2 2 2 2
7 2
2 2 1 2 1 2 1
7 2
2 1 1 2 1 2 2
7 2
2 2 1 2 1 1 2

output:

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

result:

ok all 10 test passed

Test #5:

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

input:

10
9 2
1 1 1 2 1 2 2 1 2
9 2
1 2 1 1 2 2 2 2 1
9 2
2 1 2 1 1 2 1 2 1
9 2
1 1 2 1 1 1 1 2 2
9 2
1 1 2 2 1 2 1 2 2
9 2
2 2 1 2 1 2 2 2 2
9 2
1 1 2 2 2 1 2 1 2
9 2
1 1 2 1 1 2 2 2 2
9 2
1 1 1 1 2 1 1 2 1
9 2
2 1 2 2 1 1 2 2 1

output:

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

result:

ok all 10 test passed

Test #6:

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

input:

1
5 2
1 1 2 2 1

output:

4
2 3
4 5
3 5
1 3

result:

ok all 1 test passed

Test #7:

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

input:

1
7 2
2 1 1 2 1 1 2

output:

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

result:

ok all 1 test passed

Test #8:

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

input:

1
9 2
2 1 1 2 1 1 1 2 2

output:

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

result:

ok all 1 test passed

Test #9:

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

input:

4
20 2
2 1 1 2 1 2 1 1 2 1 1 1 1 2 2 2 1 1 2 2
20 2
2 1 2 2 2 1 1 2 2 2 1 2 2 2 2 1 2 2 1 2
20 2
2 2 1 1 2 2 1 1 1 1 1 2 1 1 2 2 1 2 1 1
20 2
2 1 2 2 2 1 2 2 1 1 1 2 1 2 2 1 2 1 1 2

output:

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

result:

ok all 4 test passed

Test #10:

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

input:

4
100 2
2 2 2 1 2 1 1 1 1 2 2 1 2 2 2 1 2 2 2 2 1 1 1 2 2 1 1 2 1 1 2 1 2 2 1 1 1 2 1 2 1 1 2 1 2 1 2 1 2 1 1 1 1 2 1 1 1 2 2 2 1 2 2 2 1 1 1 2 1 2 1 2 2 1 2 2 1 1 2 1 1 1 1 2 2 1 2 1 1 2 2 1 2 2 1 2 1 2 2 2
100 2
2 1 1 1 1 1 2 2 2 1 2 1 2 2 1 2 2 1 1 1 1 2 1 1 1 2 2 1 1 2 1 1 2 1 1 2 1 1 1 1 1 2 1 ...

output:

126
3 4
4 5
5 6
9 10
11 12
12 13
15 16
16 17
20 21
23 24
25 26
27 28
28 29
30 31
31 32
32 33
34 35
37 38
38 39
39 40
40 41
42 43
43 44
44 45
45 46
46 47
47 48
48 49
49 50
53 54
54 55
57 58
60 61
61 62
64 65
67 68
68 69
69 70
70 71
71 72
73 74
74 75
76 77
78 79
79 80
83 84
85 86
86 87
87 88
89 90
91 ...

result:

ok all 4 test passed

Test #11:

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

input:

1
100 2
2 2 1 1 2 2 2 1 1 2 1 1 1 2 2 1 2 2 2 1 1 2 2 1 1 2 2 2 1 2 1 1 2 1 1 2 2 1 2 1 1 2 1 2 2 1 2 2 2 2 1 2 1 2 1 1 2 1 1 1 1 1 2 2 2 1 1 2 1 2 2 2 2 1 1 2 2 2 1 1 2 2 2 1 2 2 1 2 1 2 1 2 2 2 1 2 2 2 1 1

output:

125
2 3
4 5
7 8
9 10
10 11
13 14
15 16
16 17
19 20
21 22
23 24
25 26
28 29
29 30
30 31
32 33
33 34
35 36
37 38
38 39
39 40
41 42
42 43
43 44
45 46
46 47
50 51
51 52
52 53
53 54
54 55
56 57
57 58
62 63
65 66
67 68
68 69
69 70
73 74
75 76
78 79
80 81
83 84
84 85
86 87
87 88
88 89
89 90
90 91
91 92
94 ...

result:

ok all 1 test passed

Test #12:

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

input:

1
100 2
1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1

output:

123
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
25 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
85 86
87 88
89 90
91 92
93 94
95 96
97 98
99 100
98 1...

result:

ok all 1 test passed

Test #13:

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

input:

1
200 2
1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 ...

output:

208
3 4
13 14
23 24
33 34
43 44
53 54
63 64
73 74
83 84
93 94
103 104
113 114
123 124
133 134
143 144
153 154
163 164
173 174
183 184
193 194
193 195
193 196
193 197
193 198
193 199
193 200
192 200
191 200
190 200
189 200
188 200
187 200
186 200
185 200
184 200
182 184
181 184
180 184
179 184
178 18...

result:

ok all 1 test passed

Test #14:

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

input:

4
7 3
2 2 3 1 3 1 1
7 3
3 1 2 2 3 1 3
7 3
2 1 3 3 2 3 2
7 3
3 2 3 1 3 1 3

output:

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

result:

ok all 4 test passed

Test #15:

score: -100
Wrong Answer
time: 1ms
memory: 5668kb

input:

4
20 3
1 2 3 1 3 2 1 1 2 3 1 2 2 1 1 2 2 1 2 2
20 3
1 2 1 2 3 3 2 1 1 3 3 2 2 1 2 3 1 1 2 2
20 3
3 1 1 3 3 1 3 2 1 1 2 3 3 3 1 1 2 1 1 1
20 3
3 2 2 1 3 1 1 3 3 2 2 2 1 1 2 1 2 2 2 2

output:

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

result:

wrong answer output = 27, answer = 32.