| Task: | Building Teams |
| Sender: | tjaa |
| Submission time: | 2025-09-08 18:56:08 +0300 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | RUNTIME ERROR |
| test | verdict | time | |
|---|---|---|---|
| #1 | RUNTIME ERROR | 0.82 s | details |
| #2 | RUNTIME ERROR | 0.80 s | details |
| #3 | RUNTIME ERROR | 0.78 s | details |
| #4 | RUNTIME ERROR | 0.88 s | details |
| #5 | RUNTIME ERROR | 0.88 s | details |
| #6 | RUNTIME ERROR | 0.81 s | details |
| #7 | TIME LIMIT EXCEEDED | -- | details |
| #8 | TIME LIMIT EXCEEDED | -- | details |
| #9 | RUNTIME ERROR | 0.89 s | details |
| #10 | TIME LIMIT EXCEEDED | -- | details |
| #11 | TIME LIMIT EXCEEDED | -- | details |
| #12 | TIME LIMIT EXCEEDED | -- | details |
Code
#include <bits/stdc++.h>
using namespace std;
int main () {
int n, m;
cin >> n >> m;
vector<vector<int>> fs(n+1);
for(int i=0; i < m; i++) {
int l, r; cin >> l >> r;
fs[l].push_back(r);
fs[r].push_back(l);
}
vector<uint8_t> v(n+1);
vector<int> dj;
stack<int> st;
for(int i=1; i <= n; i++) {
st.push(i);
while(!st.empty()){
auto c = st.top(); st.pop();
if(v[c] == 0) {
v[i] = 1;
if(i == c) dj.push_back(c);
for(int n : fs[c]) st.push(n);
}
}
}
// cycle?
stack<pair<int, int>> stp;
for(int i : dj) {
stp.push({i, 2});
while(!stp.empty()){
auto[c, d] = stp.top(); stp.pop();
// cout << c << " (" << d << "):";
int cse = d % 2;
int vcse = v[c] % 2;
if(v[c] == 1) {
v[c]=d;
for(int n : fs[c]) {
// cout << ' ' << n;
stp.push({n, d+1});
}
// cout << '\n';
}
else if (cse==vcse && d-v[c] > 2) {
cout << "IMPOSSIBLE\n";
return 0;
}
}
}
cout << 2 - v[1]%2;
for(int i = 2; i <= n; i++)
cout << ' ' << 2-v[i]%2;
cout << '\n';
return 0;
}Test details
Test 1
Verdict: RUNTIME ERROR
| input |
|---|
| 10 20 3 4 8 10 3 7 1 8 ... |
| correct output |
|---|
| 1 1 1 2 2 1 2 2 2 1 |
| user output |
|---|
| (empty) |
Test 2
Verdict: RUNTIME ERROR
| input |
|---|
| 10 20 1 3 8 10 2 4 6 8 ... |
| correct output |
|---|
| 1 1 2 2 1 1 1 2 1 1 |
| user output |
|---|
| (empty) |
Test 3
Verdict: RUNTIME ERROR
| input |
|---|
| 10 20 7 10 3 10 9 10 2 10 ... |
| correct output |
|---|
| 1 2 2 1 1 1 2 1 2 1 |
| user output |
|---|
| (empty) |
Test 4
Verdict: RUNTIME ERROR
| input |
|---|
| 10 20 2 4 2 10 7 10 4 6 ... |
| correct output |
|---|
| 1 2 1 1 2 2 2 1 2 1 |
| user output |
|---|
| (empty) |
Test 5
Verdict: RUNTIME ERROR
| input |
|---|
| 10 20 3 5 8 10 9 10 1 8 ... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| (empty) |
Test 6
Verdict: RUNTIME ERROR
| input |
|---|
| 100000 200000 47355 96505 90709 92058 735 80715 91802 94265 ... |
| correct output |
|---|
| 1 2 2 1 2 1 1 1 2 2 1 2 1 1 1 ... |
| user output |
|---|
| (empty) |
Test 7
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100000 200000 59991 95794 95150 96051 78453 94730 90411 95523 ... |
| correct output |
|---|
| 1 1 1 2 2 1 1 2 1 2 1 2 2 2 1 ... |
| user output |
|---|
| (empty) |
Test 8
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100000 200000 89827 96402 65137 86792 80965 94708 19479 48078 ... |
| correct output |
|---|
| 1 2 1 1 2 1 2 2 2 1 2 1 1 2 1 ... |
| user output |
|---|
| (empty) |
Test 9
Verdict: RUNTIME ERROR
| input |
|---|
| 100000 200000 72952 83723 66197 70052 2949 52160 55753 95651 ... |
| correct output |
|---|
| 1 1 2 2 2 1 1 2 2 2 2 2 1 2 1 ... |
| user output |
|---|
| (empty) |
Test 10
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100000 200000 38942 96755 70049 82663 7746 72732 87819 99029 ... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| (empty) |
Test 11
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 5 4 1 2 3 4 4 5 5 3 |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| (empty) |
Test 12
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 4 5 1 2 1 4 2 3 2 4 ... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| (empty) |
