QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#218973#6545. Connect the Dots275307894aWA 1ms8140kbC++141.5kb2023-10-18 21:15:482023-10-18 21:15:48

Judging History

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

  • [2023-10-18 21:15:48]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:8140kb
  • [2023-10-18 21:15:48]
  • 提交

answer

#include<bits/stdc++.h>
#define Gc() getchar() 
#define Me(x,y) memset(x,y,sizeof(x))
#define Mc(x,y) memcpy(x,y,sizeof(x))
#define d(x,y) ((m)*(x-1)+(y))
#define R(n) (rnd()%(n)+1)
#define Pc(x) putchar(x)
#define LB lower_bound
#define UB upper_bound
#define fi first
#define se second
#define eb emplace_back
using namespace std;using ll=long long;using db=double;using lb=long db;using ui=unsigned;using ull=unsigned long long;using pii=pair<int,int>;using LL=__uint128_t;
const int N=3e5+5,M=N*8+5,K=600+5,mod=998244353,Mod=mod-1;const db eps=1e-6;const int INF=1e9+7;mt19937 rnd(263082);
int n,m,A[N],f[N],st[N],sh,del[N];
vector<pii> ans;
void Do(int x){
	for(int i=1;i<=n;i++) if(!del[i]&&(i<x-1||i>x+1)) ans.eb(i,x);
	int L=1,R=n;while(del[L]) L++;while(del[R]) R--;
	if(L+1<R&&L^x&&R^x) ans.eb(L,R);
}
void print(){
	printf("%d\n",ans.size());
	for(auto i:ans) printf("%d %d\n",i.fi,i.se);
}
void Solve(){
	int i,j;scanf("%d%d",&n,&m);ans.clear();
	fill(f+1,f+m+1,0);fill(del+1,del+n+1,0);
	for(i=1;i<=n;i++) scanf("%d",&A[i]),f[A[i]]++;
	for(i=1;i<n;i++) if(A[i]^A[i+1]) ans.eb(i,i+1);
	sh=0;for(i=1;i<=n;i++){
		while(sh>1&&A[i]^A[st[sh-1]]) {
			if(f[A[st[sh]]]==1) {Do(st[sh]);print();return;}
			del[st[sh]]=1;f[A[st[sh]]]--;sh--;ans.eb(st[sh],i);
		}
		st[++sh]=i;
	}
	for(i=4;i<=sh;i+=2) ans.eb(st[1],st[i]);
	print();
}
int main(){
	int t=1;
	scanf("%d",&t);
	while(t--) Solve();
	cerr<<clock()*1.0/CLOCKS_PER_SEC<<'\n';
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

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

output:

3
2 3
1 3
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: 0ms
memory: 6056kb

input:

1
2 2
1 2

output:

1
1 2

result:

ok all 1 test passed

Test #3:

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

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
1 3
1 4
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
1 3
1 5
4
1 2
3 4
1 3
3 5
4
3 4
2 4
1 4
1 5
5
2 3
3 4
4 5
1 3
1 5
4
1 2
4 5
1 3
1 4

result:

ok all 10 test passed

Test #4:

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

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
2 4
2 5
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
1 4
5 7
1 7
6
3 4
5 6
2 4
1 4
1 5
5 7
7
1 2
3 4
4 5
6 7
1 3
4 6
1 6
7
1 2
2 3
6 7
2 4
2 5
2 6
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
1 3
5 7
1 5
7
2 3
3 4
4 5
6 7
1 3
4 6
...

result:

ok all 10 test passed

Test #5:

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

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
2 4
1 4
5 7
1 7
1 9
9
1 2
2 3
4 5
8 9
2 4
4 6
4 7
4 8
1 8
11
1 2
2 3
3 4
5 6
6 7
7 8
8 9
3 5
1 5
1 7
1 9
9
2 3
3 4
7 8
1 3
3 5
3 6
3 7
7 9
1 9
10
2 3
4 5
5 6
6 7
7 8
1 3
1 4
7 9
1 6
1 9
9
2 3
3 4
4 5
5 6
1 3
5 7
5 8
5 9
1 5
10
2 3
5 6
6 7
7 8
8 9
1 3
1 4
1 5
1 7
1 9
9
2 3
3 4
...

result:

ok all 10 test passed

Test #6:

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

input:

1
5 2
1 1 2 2 1

output:

4
2 3
4 5
1 3
1 4

result:

ok all 1 test passed

Test #7:

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

input:

1
7 2
2 1 1 2 1 1 2

output:

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

result:

ok all 1 test passed

Test #8:

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

input:

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

output:

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

result:

ok all 1 test passed

Test #9:

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

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

result:

ok all 4 test passed

Test #10:

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

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

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

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
1 3
...

result:

ok all 1 test passed

Test #13:

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

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
2 4
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
13 15
13 16
13 17
13 18
13 19
13 20
13 21
13 22
13 23
23 25
23 26
23 27
23 28
23 29
23 30
23 31
23 32
23 33
33...

result:

ok all 1 test passed

Test #14:

score: -100
Wrong Answer
time: 0ms
memory: 5996kb

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:

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

result:

wrong answer output = 10, answer = 9.