Submission details
Task:Blocks
Sender:frederikvase
Submission time:2026-04-16 22:17:09 +0300
Language:C++ (C++20)
Status:READY
Result:45
Feedback
subtaskverdictscore
#1ACCEPTED4
#20
#3ACCEPTED18
#4ACCEPTED23
#50
#60
Test results
testverdicttimesubtask
#1ACCEPTED0.00 s2, 5, 6details
#2ACCEPTED0.00 s1, 2, 3, 4, 5, 6details
#3ACCEPTED0.00 s1, 2, 4, 5, 6details
#4ACCEPTED0.00 s1, 2, 3, 4, 5, 6details
#5ACCEPTED0.00 s1, 2, 3, 4, 5, 6details
#6ACCEPTED0.00 s1, 2, 3, 5, 6details
#7ACCEPTED0.00 s1, 2, 4, 5, 6details
#8ACCEPTED0.00 s2, 3, 4, 5, 6details
#9ACCEPTED0.00 s2, 3, 5, 6details
#10ACCEPTED0.00 s2, 3, 4, 5, 6details
#11ACCEPTED0.00 s2, 4, 5, 6details
#12ACCEPTED0.00 s2, 5, 6details
#13ACCEPTED0.00 s2, 3, 4, 5, 6details
#14ACCEPTED0.00 s2, 5, 6details
#15ACCEPTED0.00 s2, 5, 6details
#16ACCEPTED0.00 s2, 4, 5, 6details
#17ACCEPTED0.00 s2, 3, 4, 5, 6details
#18ACCEPTED0.00 s2, 5, 6details
#19ACCEPTED0.00 s2, 5, 6details
#20ACCEPTED0.04 s3, 4, 6details
#21ACCEPTED0.04 s3, 4, 6details
#22ACCEPTED0.03 s3, 4, 5, 6details
#23ACCEPTED0.03 s3, 4, 5, 6details
#24ACCEPTED0.03 s4, 6details
#25ACCEPTED0.02 s4, 6details
#26ACCEPTED0.03 s3, 4, 5, 6details
#27ACCEPTED0.04 s4, 6details
#28ACCEPTED0.04 s4, 5, 6details
#29ACCEPTED0.03 s4, 6details
#30ACCEPTED0.04 s3, 4, 5, 6details
#31ACCEPTED0.03 s6details
#32ACCEPTED0.02 s6details
#33ACCEPTED0.04 s6details
#34ACCEPTED0.04 s5, 6details
#35ACCEPTED0.04 s6details
#36ACCEPTED0.04 s6details
#37ACCEPTED0.02 s6details
#38ACCEPTED0.02 s5, 6details
#39ACCEPTED0.02 s6details
#40ACCEPTED0.04 s6details
#41ACCEPTED0.02 s6details
#42ACCEPTED0.04 s3, 6details
#430.02 s6details
#440.01 s6details
#450.00 s6details
#460.00 s6details
#470.00 s5, 6details
#480.00 s2, 5, 6details
#49ACCEPTED0.00 s2, 3, 5, 6details
#50ACCEPTED0.00 s2, 5, 6details
#51ACCEPTED0.00 s2, 5, 6details
#52ACCEPTED0.00 s2, 5, 6details
#53ACCEPTED0.00 s2, 5, 6details
#54ACCEPTED0.03 s5, 6details
#55ACCEPTED0.02 s5, 6details
#56ACCEPTED0.02 s5, 6details
#57ACCEPTED0.05 s4, 6details
#580.00 s2, 5, 6details
#590.00 s2, 5, 6details
#600.00 s2, 5, 6details
#610.00 s5, 6details
#620.00 s5, 6details
#630.00 s5, 6details

Code

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

void imp() {
	cout << "NO\n";
}

void evencase(int n, int k, vector<int> &f) {
	for (int c = 1; c <= k; c++) {
		if (f[c] % 2 == 1) {
			return imp();
		}
	}

	cout << "YES\n";
	vector<int> res;
	for (int c = 1; c <= k; c++) {
		for (int i = 0; i < f[c] / 2; i++) {
			res.push_back(c);
		}
	}

	for (int e : res) cout << e << " ";
	reverse(res.begin(), res.end());
	for (int e : res) cout << e << " ";
	cout << "\n";
}
 
void solve() {
	int n, k;
	cin >> n >> k;
 
	vector<int> f(k + 1);
	for (int i = 0; i < n; i++) {
		int c;
		cin >> c;
		f[c]++;
	}
	auto of = f;
 
	if (n % 2 == 0) {
		return evencase(n, k, f);
	}
 
	int m = n / 2;
	int oddcnt = 0;
	int onecnt = 0;
	for (int c = 1; c <= k; c++) {
		oddcnt += f[c] & 1;
		onecnt += (f[c] == 1);
	}

	int comps = (oddcnt - 1) / 2;
	if (onecnt > 1 || comps > (m == 3 ? 1 : (m - 1) / 3)) {
		return imp();
	}

	cout << "YES\n";

	int mxeven = comps, mxodd = comps - 1;
	if (mxeven % 2) swap(mxeven, mxodd);

	vector<int> resa(m), resb(m);
	for (int i = 0; i < comps; i++) {
		resa[i] = i + 1;
		resb[i] = i + 1 + comps;
	}

	for (int i = comps, x = mxodd; x >= 1; i++, x -= 2) {
		resa[i] = x;
		resa[i + x] = x + comps;
		resb[i] = x + comps;
		resb[i + x] = x;
	}
	for (int i = comps + mxodd + 1, x = mxeven; x >= 2; i++, x -= 2) {
		resa[i] = x;
		resa[i + x] = x + comps;
		resb[i] = x + comps;
		resb[i + x] = x;
	}

	vector<int> oddies;
	for (int c = 1; c <= k; c++) {
		if (f[c] & 1) {
			oddies.push_back(c);
			if (f[c] == 1) {
				swap(oddies.back(), oddies.front());
			}
		}
	}

	for (int &e : resa) if (e) f[oddies[e]]--, e = oddies[e];
	for (int &e : resb) if (e) f[oddies[e]]--, e = oddies[e];
	f[oddies[0]]--;

	stack<int> stck;
	for (int c = 1; c <= k; c++) {
		for (int i = 0; i < f[c]; i += 2) {
			stck.push(c);
		}
	}
	for (int i = 0; i < m; i++) if (resa[i] == 0) {
		resa[i] = stck.top();
		resb[i] = stck.top();
		stck.pop();
	}

	reverse(resb.begin(), resb.end());
	for (int e : resb) cout << e << " ";
	cout << oddies[0];
	for (int e : resa) cout << " " << e;
	cout << "\n";
}
 
signed main() {
	cin.tie(0)->sync_with_stdio(0);
	int t;
	cin >> t;
	while (t--) {
		solve();
	}
}

Test details

Test 1

Subtask: 2, 5, 6

Verdict: ACCEPTED

input
3
7 2
1 1 1 1 2 2 2
2 2
1 2
...

correct output
YES
1 2 2 1 1 1 2
NO
YES
1 1

user output
YES
1 1 2 2 2 1 1
NO
YES
1 1 

Test 2

Subtask: 1, 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
1
1 1
1

correct output
YES
1

user output
YES
1

Test 3

Subtask: 1, 2, 4, 5, 6

Verdict: ACCEPTED

input
1
2 2
1 2

correct output
NO

user output
NO

Test 4

Subtask: 1, 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
1
2 1
1 1

correct output
YES
1 1

user output
YES
1 1 

Test 5

Subtask: 1, 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
1
3 1
1 1 1

correct output
YES
1 1 1

user output
YES
1 1 1

Test 6

Subtask: 1, 2, 3, 5, 6

Verdict: ACCEPTED

input
1
3 2
2 1 2

correct output
YES
2 1 2

user output
YES
2 1 2

Test 7

Subtask: 1, 2, 4, 5, 6

Verdict: ACCEPTED

input
1
3 3
1 2 3

correct output
NO

user output
NO

Test 8

Subtask: 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
1
4 2
2 1 2 1

correct output
YES
1 2 2 1

user output
YES
1 2 2 1 

Test 9

Subtask: 2, 3, 5, 6

Verdict: ACCEPTED

input
1
5 2
2 1 2 1 2

correct output
YES
1 2 2 2 1

user output
YES
1 2 2 2 1

Test 10

Subtask: 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
1
5 1
1 1 1 1 1

correct output
YES
1 1 1 1 1

user output
YES
1 1 1 1 1

Test 11

Subtask: 2, 4, 5, 6

Verdict: ACCEPTED

input
1
10 2
1 2 2 1 2 1 2 1 2 1

correct output
NO

user output
NO

Test 12

Subtask: 2, 5, 6

Verdict: ACCEPTED

input
1
10 5
1 5 3 3 5 5 4 4 1 2

correct output
NO

user output
NO

Test 13

Subtask: 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
1
14 7
2 3 4 4 6 3 5 7 7 6 1 2 1 5

correct output
YES
1 7 5 6 4 3 2 2 3 4 6 5 7 1

user output
YES
1 2 3 4 5 6 7 7 6 5 4 3 2 1 

Test 14

Subtask: 2, 5, 6

Verdict: ACCEPTED

input
1
14 7
7 1 2 3 6 1 7 4 2 5 3 5 5 6

correct output
NO

user output
NO

Test 15

Subtask: 2, 5, 6

Verdict: ACCEPTED

input
1
14 6
3 3 5 2 1 2 5 1 1 4 4 6 3 6

correct output
NO

user output
NO

Test 16

Subtask: 2, 4, 5, 6

Verdict: ACCEPTED

input
1
15 3
2 2 1 1 2 2 3 1 1 3 1 3 3 2 3

correct output
YES
3 1 2 3 1 2 2 3 1 1 2 3 2 1 3

user output
YES
1 1 2 3 2 3 3 1 2 2 3 3 2 1 1

Test 17

Subtask: 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
1
15 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

correct output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

user output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Test 18

Subtask: 2, 5, 6

Verdict: ACCEPTED

input
1
15 6
1 3 6 2 4 5 3 5 1 2 1 3 2 5 1

correct output
NO

user output
NO

Test 19

Subtask: 2, 5, 6

Verdict: ACCEPTED

input
1
15 6
3 4 1 3 2 5 4 3 1 5 2 6 1 1 2

correct output
YES
5 1 1 4 2 3 3 6 2 2 3 4 1 1 5

user output
YES
1 1 4 5 3 2 2 6 3 3 2 5 4 1 1

Test 20

Subtask: 3, 4, 6

Verdict: ACCEPTED

input
1
200000 100000
41274 72445 8195 89156 8309 52...

correct output
YES
56657 98790 6783 99959 46986 3...

user output
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Test 21

Subtask: 3, 4, 6

Verdict: ACCEPTED

input
1
200000 50000
11371 7307 32180 19963 36192 1...

correct output
YES
23060 23060 30821 30821 6516 6...

user output
YES
1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 ...

Test 22

Subtask: 3, 4, 5, 6

Verdict: ACCEPTED

input
1
200000 2
1 2 1 2 2 2 2 2 1 2 1 2 1 1 2 ...

correct output
YES
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...

user output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 23

Subtask: 3, 4, 5, 6

Verdict: ACCEPTED

input
1
200000 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

user output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 24

Subtask: 4, 6

Verdict: ACCEPTED

input
1
200000 200000
81478 107278 105420 174048 289...

correct output
NO

user output
NO

Test 25

Subtask: 4, 6

Verdict: ACCEPTED

input
1
199998 66666
11893 41083 9602 37023 17558 5...

correct output
NO

user output
NO

Test 26

Subtask: 3, 4, 5, 6

Verdict: ACCEPTED

input
1
199998 3
1 2 1 1 2 2 3 2 2 3 3 1 2 3 1 ...

correct output
YES
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ...

user output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 27

Subtask: 4, 6

Verdict: ACCEPTED

input
1
199995 66665
23438 10740 28920 10902 37608 ...

correct output
YES
28038 26368 5479 35821 63638 2...

user output
YES
33333 33331 33329 33327 33325 ...

Test 28

Subtask: 4, 5, 6

Verdict: ACCEPTED

input
1
199995 3
1 3 1 2 1 3 2 1 3 3 1 3 1 2 2 ...

correct output
YES
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...

user output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 29

Subtask: 4, 6

Verdict: ACCEPTED

input
1
199995 199995
98848 21787 95908 35825 145110...

correct output
NO

user output
NO

Test 30

Subtask: 3, 4, 5, 6

Verdict: ACCEPTED

input
1
199995 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

user output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 31

Subtask: 6

Verdict: ACCEPTED

input
1
199996 66666
58102 41937 44066 50719 64212 ...

correct output
NO

user output
NO

Test 32

Subtask: 6

Verdict: ACCEPTED

input
1
199997 66667
64994 35732 65333 29671 5745 4...

correct output
NO

user output
NO

Test 33

Subtask: 6

Verdict: ACCEPTED

input
1
179999 599
62 356 235 202 311 370 325 84 ...

correct output
YES
331 331 331 331 331 331 331 33...

user output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 34

Subtask: 5, 6

Verdict: ACCEPTED

input
1
199999 3
3 2 2 2 3 3 3 2 3 3 3 2 2 2 3 ...

correct output
YES
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...

user output
YES
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...

Test 35

Subtask: 6

Verdict: ACCEPTED

input
1
199999 51
20 38 45 24 3 40 21 1 18 10 36...

correct output
YES
46 46 46 46 46 46 46 46 46 46 ...

user output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 36

Subtask: 6

Verdict: ACCEPTED

input
1
199999 10001
4645 6143 5426 3796 8646 9815 ...

correct output
YES
4536 4536 4536 4536 2089 2089 ...

user output
YES
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 ...

Test 37

Subtask: 6

Verdict: ACCEPTED

input
1
199999 86578
37361 14324 34552 49344 77757 ...

correct output
NO

user output
NO

Test 38

Subtask: 5, 6

Verdict: ACCEPTED

input
1
199999 4
3 3 2 3 2 2 3 3 3 2 3 3 3 3 2 ...

correct output
NO

user output
NO

Test 39

Subtask: 6

Verdict: ACCEPTED

input
1
199999 52
9 2 4 42 45 52 40 38 51 21 27 ...

correct output
NO

user output
NO

Test 40

Subtask: 6

Verdict: ACCEPTED

input
1
199999 10002
4020 9144 2560 8443 418 7212 7...

correct output
NO

user output
NO

Test 41

Subtask: 6

Verdict: ACCEPTED

input
1
199999 86251
39385 78288 43911 67919 84237 ...

correct output
NO

user output
NO

Test 42

Subtask: 3, 6

Verdict: ACCEPTED

input
1
180299 600
22 518 108 303 281 289 12 558 ...

correct output
YES
72 72 72 72 72 72 72 72 72 72 ...

user output
YES
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 43

Subtask: 6

Verdict:

input
1
199999 66667
20668 50081 49781 19019 15896 ...

correct output
YES
51630 65011 37598 48090 36015 ...

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 44

Subtask: 6

Verdict:

input
1
19999 6667
1986 3956 1623 1323 4207 6379 ...

correct output
YES
1983 1223 3134 733 1608 2137 3...

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 45

Subtask: 6

Verdict:

input
1
1999 667
549 405 635 315 596 557 241 42...

correct output
YES
385 164 342 20 313 308 401 656...

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 46

Subtask: 6

Verdict:

input
1
199 67
10 54 26 5 16 33 47 3 51 64 47...

correct output
YES
19 45 37 35 17 24 30 48 22 8 3...

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 47

Subtask: 5, 6

Verdict:

input
1
19 7
6 2 5 4 3 3 2 7 1 4 4 6 3 5 2 ...

correct output
YES
2 3 4 5 7 6 6 5 3 1 7 4 2 7 4 ...

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 48

Subtask: 2, 5, 6

Verdict:

input
1
13 5
4 2 1 3 4 5 5 1 5 3 4 3 1

correct output
YES
1 3 5 4 4 3 2 5 1 5 1 4 3

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 49

Subtask: 2, 3, 5, 6

Verdict: ACCEPTED

input
1
5 2
1 1 1 2 1

correct output
YES
1 1 2 1 1

user output
YES
1 1 2 1 1

Test 50

Subtask: 2, 5, 6

Verdict: ACCEPTED

input
100
5 4
2 4 1 3 4
5 4
2 4 1 3 2
...

correct output
NO
NO
YES
1 3 2 3 1
YES
...

user output
NO
NO
YES
1 3 2 3 1
YES
...

Test 51

Subtask: 2, 5, 6

Verdict: ACCEPTED

input
100
15 3
1 3 2 1 3 1 2 2 1 2 1 3 1 3 2
15 3
1 3 3 2 1 1 3 1 2 1 1 2 2 2 1
...

correct output
YES
2 3 3 1 1 1 2 2 2 1 1 1 3 3 2
YES
2 1 1 2 3 1 1 2 3 3 1 2 1 1 2
YES
...

user output
YES
1 1 1 2 2 3 3 2 3 3 2 2 1 1 1
YES
1 1 1 2 2 3 3 1 2 2 3 2 1 1 1
YES
...

Test 52

Subtask: 2, 5, 6

Verdict: ACCEPTED

input
100
15 5
4 4 1 5 3 2 3 2 1 3 1 5 3 5 1
15 4
3 3 3 4 2 1 1 4 4 2 2 1 1 1 1
...

correct output
YES
2 3 3 1 1 4 5 5 5 4 1 1 3 3 2
YES
1 1 1 2 4 3 3 2 4 4 3 2 1 1 1
YES
...

user output
YES
1 1 2 3 3 4 5 5 5 4 3 3 2 1 1
YES
1 1 1 2 3 4 4 2 3 3 4 2 1 1 1
YES
...

Test 53

Subtask: 2, 5, 6

Verdict: ACCEPTED

input
100
15 9
7 8 8 8 4 5 9 3 5 4 2 1 4 4 6
15 8
6 8 4 5 5 2 5 7 8 3 8 8 5 6 1
...

correct output
NO
NO
NO
NO
NO
...

user output
NO
NO
NO
NO
NO
...

Test 54

Subtask: 5, 6

Verdict: ACCEPTED

input
100
2000 3
1 3 2 3 2 2 1 3 1 1 3 2 3 3 3 ...

correct output
NO
NO
NO
NO
NO
...

user output
NO
NO
NO
NO
NO
...

Test 55

Subtask: 5, 6

Verdict: ACCEPTED

input
100
2000 5
4 2 4 3 2 5 5 5 5 3 4 1 3 5 3 ...

correct output
NO
NO
NO
NO
NO
...

user output
NO
NO
NO
NO
NO
...

Test 56

Subtask: 5, 6

Verdict: ACCEPTED

input
100
2000 15
8 7 6 4 7 5 14 15 3 4 8 5 14 8...

correct output
NO
NO
NO
NO
NO
...

user output
NO
NO
NO
NO
NO
...

Test 57

Subtask: 4, 6

Verdict: ACCEPTED

input
1
199989 66663
4877 59987 13852 61173 65485 2...

correct output
YES
60320 50363 20007 35623 25982 ...

user output
YES
33331 33329 33327 33325 33323 ...

Test 58

Subtask: 2, 5, 6

Verdict:

input
1
13 5
3 5 1 3 1 1 4 2 5 3 4 5 4

correct output
YES
5 1 4 3 3 1 2 4 5 4 5 3 1

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 59

Subtask: 2, 5, 6

Verdict:

input
1
13 5
1 4 2 1 4 1 3 5 2 2 5 5 4

correct output
YES
4 2 5 1 1 2 3 5 4 5 4 1 2

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 60

Subtask: 2, 5, 6

Verdict:

input
1
13 5
1 5 4 4 4 1 5 2 1 2 3 2 5

correct output
YES
5 4 2 1 1 4 3 2 5 2 5 1 4

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 61

Subtask: 5, 6

Verdict:

input
1
19 7
5 5 2 4 3 6 5 2 7 3 4 3 2 7 4 ...

correct output
YES
2 6 3 4 7 5 5 4 6 1 7 3 2 7 3 ...

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 62

Subtask: 5, 6

Verdict:

input
1
19 7
3 7 7 6 3 6 2 1 4 6 3 5 4 4 1 ...

correct output
YES
7 1 2 6 4 3 3 6 1 5 4 2 7 4 2 ...

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES

Test 63

Subtask: 5, 6

Verdict:

input
1
19 7
3 5 3 2 6 1 1 6 2 3 6 1 7 7 7 ...

correct output
YES
2 7 1 6 4 3 3 6 7 5 4 1 2 4 1 ...

user output
NO

Feedback: Case #1: Wrong answer "NO", expected YES