Submission details
Task:Coloring
Sender:Makkara
Submission time:2025-11-08 14:37:10 +0200
Language:C++ (C++17)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.26 sdetails
#3ACCEPTED0.27 sdetails
#4ACCEPTED0.30 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.01 sdetails
#10ACCEPTED0.02 sdetails
#11ACCEPTED0.24 sdetails
#12ACCEPTED0.51 sdetails
#13ACCEPTED0.51 sdetails
#14ACCEPTED0.52 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.22 sdetails
#17ACCEPTED0.42 sdetails
#18ACCEPTED0.00 sdetails
#19ACCEPTED0.01 sdetails
#20ACCEPTED0.29 sdetails
#21ACCEPTED0.00 sdetails
#22ACCEPTED0.00 sdetails
#23ACCEPTED0.30 sdetails
#24ACCEPTED0.01 sdetails
#25ACCEPTED0.04 sdetails
#26ACCEPTED0.14 sdetails
#27ACCEPTED0.27 sdetails

Code

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

struct Vertex {
  vector<int> adj2;
  unordered_set<int> adj;
  int color;
  bool badcolor[6];
  bool seen;
};

int main() {
  int n, m;
  cin >> n >> m;
  Vertex E[n];
  for (int i = 0; i < m; ++i) {
    int u, v;
    cin >> u >> v;
    E[u - 1].adj.insert(v - 1);
    E[v - 1].adj.insert(u - 1);
    E[u - 1].adj2.push_back(v - 1);
    E[v - 1].adj2.push_back(u - 1);
  }
  priority_queue<pair<int, int>> heap;
  for (int i = 0; i < n; ++i) {
    E[i].color = -1;
    heap.push({-E[i].adj2.size(), i});
    for (int j = 0; j < 6; ++j)
      E[i].badcolor[j] = false;
    E[i].seen = false;
  }
  int cnt = 0;
  vector <int> order;
  while (cnt < n) {
    int v = heap.top().second;
    heap.pop();
    if (E[v].seen) continue;
    E[v].seen = true;
    cnt++;
    order.push_back(v);
    for (int u : E[v].adj) {
      E[u].adj.erase(E[u].adj.find(v));
      heap.push({-E[u].adj.size(), u});
    }
  }
    
  for (int j = n - 1; j >= 0; --j) {
    int v = order[j];
    for (int i = 0; i < 6; ++i) {
      if (!E[v].badcolor[i]) {
        E[v].color = i;
        for (int u : E[v].adj2) {
          E[u].badcolor[i] = true;
        }
        break;
      }
    }
  }
  
  for (int i = 0; i < n; ++i) {
    cout << E[i].color + 1 << " "[i == n-1];
  }
  cout << endl;
  
  return 0;
}

Test details

Test 1

Verdict: ACCEPTED

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

correct output
2 3 1 2 1

user output
1 2 3 1 3

Test 2

Verdict: ACCEPTED

input
100000 199998
1 2
2 3
3 4
4 5
...

correct output
4 3 2 3 2 3 2 3 2 3 2 3 2 3 2 ...

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

Test 3

Verdict: ACCEPTED

input
81251 200000
1 2
2 3
3 4
4 5
...

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

user output
1 2 3 4 3 4 3 1 2 1 2 4 3 1 2 ...

Test 4

Verdict: ACCEPTED

input
81251 200000
1 6251
6251 12501
12501 18751
18751 25001
...

correct output
3 5 3 5 3 5 3 5 3 5 3 5 3 5 3 ...

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

Test 5

Verdict: ACCEPTED

input
2 1
1 2

correct output
2 1

user output
1 2

Test 6

Verdict: ACCEPTED

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

correct output
1 3 3 2 1

user output
2 1 1 2 3

Test 7

Verdict: ACCEPTED

input
9 10
4 6
5 8
9 6
5 4
...

correct output
3 2 1 1 3 2 1 1 1

user output
2 1 1 1 2 3 1 1 2

Test 8

Verdict: ACCEPTED

input
65 100
34 52
42 65
48 6
62 63
...

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

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

Test 9

Verdict: ACCEPTED

input
661 1000
102 270
29 1
235 291
1 28
...

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

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

Test 10

Verdict: ACCEPTED

input
6658 10000
6255 6351
6240 811
5121 5120
562 563
...

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

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

Test 11

Verdict: ACCEPTED

input
66713 100002
17616 53797
36477 36478
9289 9288
30331 12908
...

correct output
2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 ...

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

Test 12

Verdict: ACCEPTED

input
133153 199900
84918 102523
65880 121666
112752 112751
119806 92639
...

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

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

Test 13

Verdict: ACCEPTED

input
132902 199904
38449 38448
103004 31700
24769 12112
102436 54041
...

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

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

Test 14

Verdict: ACCEPTED

input
133659 199900
106579 112407
107263 107093
11493 44214
15803 15804
...

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

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

Test 15

Verdict: ACCEPTED

input
36 85
28 29
8 9
36 30
14 8
...

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

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

Test 16

Verdict: ACCEPTED

input
40000 119201
16810 16610
34321 34120
38157 37956
24084 23883
...

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

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

Test 17

Verdict: ACCEPTED

input
80000 199993
29955 9954
47408 27408
51231 51232
37204 37205
...

correct output
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ...

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

Test 18

Verdict: ACCEPTED

input
15 35
3 2
3 4
4 2
5 4
...

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

user output
2 1 2 3 4 3 4 2 4 2 3 2 3 4 1

Test 19

Verdict: ACCEPTED

input
143 352
3 2
3 4
4 2
5 4
...

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

user output
2 1 2 3 4 3 4 2 4 2 3 2 3 4 1 ...

Test 20

Verdict: ACCEPTED

input
81256 198855
3 2
3 4
4 2
5 4
...

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

user output
2 1 2 3 4 3 4 2 4 2 3 2 3 4 1 ...

Test 21

Verdict: ACCEPTED

input
15 33
3 2
3 4
4 2
5 4
...

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

user output
1 1 4 2 3 4 2 3 1 2 3 1 3 4 2

Test 22

Verdict: ACCEPTED

input
137 326
3 2
3 4
4 2
5 4
...

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

user output
2 1 4 2 3 4 2 3 1 2 3 1 3 4 3 ...

Test 23

Verdict: ACCEPTED

input
82312 198211
3 2
3 4
4 2
5 4
...

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

user output
2 1 4 2 3 4 2 3 1 2 3 1 3 4 3 ...

Test 24

Verdict: ACCEPTED

input
512 1025
2 13
13 3
2 14
14 3
...

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

user output
1 3 1 2 3 4 3 1 2 1 2 3 2 2 2 ...

Test 25

Verdict: ACCEPTED

input
15342 30761
2 13
13 3
2 14
14 3
...

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

user output
1 3 1 2 3 4 3 1 2 1 2 3 2 2 2 ...

Test 26

Verdict: ACCEPTED

input
51148 102547
2 13
13 3
2 14
14 3
...

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

user output
1 3 1 2 3 4 3 1 2 1 2 3 2 2 2 ...

Test 27

Verdict: ACCEPTED

input
99735 199964
2 13
13 3
2 14
14 3
...

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

user output
1 3 1 2 3 4 3 1 2 1 2 3 2 2 2 ...