| Task: | 3-Coloring |
| Sender: | UnoK-admin |
| Submission time: | 2025-11-26 17:31:12 +0200 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.00 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.00 s | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | WRONG ANSWER | 0.00 s | details |
| #12 | ACCEPTED | 0.01 s | details |
| #13 | ACCEPTED | 0.08 s | details |
Code
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define pb push_back
#define VI vector<int>
#define AR(x) array<int, x>
#define MX vector<VI >
#define all(x) x.begin(), x.end()
#define IOS cin.tie(0)->sync_with_stdio(0)
using namespace std;
int main(){
int n;
cin >> n;
VI e(n+1);
MX g(n+1);
for(int i=1; i<=n; i++){
cin >> e[i];
g[e[i]].pb(i);
g[i].pb(e[i]);
}
VI ans(n+1);
auto dfs = [&](auto &&dfs, int i) -> void {
for(int j : g[i]){
if(ans[j] == ans[i]){
ans[i] = 3;
} else {
if(!ans[j]){
ans[j] = ans[i]^3;
dfs(dfs, j);
}
}
}
};
for(int i=1; i<=n; i++){
if(!ans[i]){
ans[i] = 1;
dfs(dfs, i);
}
}
for(int i=1; i<=n; i++) cout << ans[i] << ' ';
return 0;
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 2 2 1 |
| correct output |
|---|
| 1 2 |
| user output |
|---|
| 1 2 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 3 2 1 1 |
| correct output |
|---|
| 1 2 2 |
| user output |
|---|
| 1 2 2 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 4 3 1 4 2 |
| correct output |
|---|
| 1 2 2 1 |
| user output |
|---|
| 1 2 2 1 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 5 5 5 1 5 4 |
| correct output |
|---|
| 1 1 2 1 2 |
| user output |
|---|
| 1 1 2 1 2 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 10 3 1 9 9 3 4 10 10 5 1 |
| correct output |
|---|
| 1 2 2 2 3 1 1 1 1 2 |
| user output |
|---|
| 1 2 2 2 3 1 1 1 1 2 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 10 9 10 4 3 9 1 1 4 2 6 |
| correct output |
|---|
| 1 1 1 2 1 3 2 1 2 2 |
| user output |
|---|
| 1 1 1 2 1 3 2 1 2 2 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 10 3 8 4 5 10 8 5 10 4 6 |
| correct output |
|---|
| 1 1 2 1 2 2 1 3 2 1 |
| user output |
|---|
| 1 1 2 1 2 3 1 2 2 1 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 10 9 1 10 3 9 4 6 9 3 5 |
| correct output |
|---|
| 1 2 1 2 1 1 2 1 2 2 |
| user output |
|---|
| 1 2 1 2 1 1 2 1 2 2 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 10 4 6 5 5 1 2 4 2 1 3 |
| correct output |
|---|
| 1 1 1 2 3 2 1 2 2 2 |
| user output |
|---|
| 1 1 2 2 3 2 1 2 2 1 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 100 19 7 2 67 47 20 73 93 43 11 49... |
| correct output |
|---|
| 1 1 2 1 1 1 3 2 1 2 1 1 2 1 1 ... |
| user output |
|---|
| 1 2 1 1 1 2 1 1 2 2 1 1 1 1 1 ... Truncated |
Test 11
Verdict: WRONG ANSWER
| input |
|---|
| 1000 155 447 741 874 264 87 534 724... |
| correct output |
|---|
| 1 1 2 1 1 1 1 1 1 1 1 2 1 2 2 ... |
| user output |
|---|
| 1 1 2 1 1 1 1 1 1 1 1 2 1 2 2 ... Truncated |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 10000 7778 6074 2376 8595 8243 8930 ... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 ... |
| user output |
|---|
| 1 1 2 1 2 1 2 1 1 2 2 1 2 1 1 ... Truncated |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 100000 51396 92191 77318 65910 87045 ... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 2 1 1 2 1 1 1 1 2 2 1 2 2 ... Truncated |
