QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#376713#6545. Connect the DotsWorld_CreaterWA 2ms5740kbC++141.6kb2024-04-04 15:36:522024-04-04 15:36:53

Judging History

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

  • [2024-04-04 15:36:53]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:5740kb
  • [2024-04-04 15:36:52]
  • 提交

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(cnt[a[x]]==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;
		}
	}
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 5692kb

input:

1
2 2
1 2

output:

1
1 2

result:

ok all 1 test passed

Test #3:

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

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: 1ms
memory: 5612kb

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
2 4
1 4
4 7
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: 2ms
memory: 5668kb

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: 5672kb

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: 1ms
memory: 5632kb

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: 1ms
memory: 5668kb

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: 0ms
memory: 5716kb

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: 5720kb

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: 5664kb

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: 0ms
memory: 5612kb

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: 5680kb

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: 5740kb

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: 0
Accepted
time: 1ms
memory: 5628kb

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:

32
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
1 3
3 6
3 7
3 8
3 9
3 11
3 12
3 13
3 14
3 15
3 16
3 17
3 18
3 19
3 20
1 20
31
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
3 5
2 5
1 5
5 8
5 9
5 12
5 13
5 14
5 15
5 17
5 18
5 19
...

result:

ok all 4 test passed

Test #16:

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

input:

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

output:

147
1 2
3 4
4 5
8 9
9 10
11 12
13 14
14 15
15 16
17 18
22 23
23 24
25 26
26 27
27 28
28 29
31 32
33 34
34 35
35 36
36 37
37 38
38 39
39 40
40 41
41 42
42 43
45 46
46 47
47 48
49 50
50 51
51 52
53 54
54 55
55 56
56 57
57 58
58 59
60 61
61 62
63 64
65 66
66 67
70 71
71 72
72 73
73 74
77 78
78 79
79 80...

result:

wrong answer output = 147, answer = 162.