CSES - Aalto Competitive Programming 2024 - wk6 - Wed - Results
Submission details
Task:Fragile network
Sender:aalto2024g_003
Submission time:2024-10-09 16:41:00 +0300
Language:C++ (C++20)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.01 sdetails
#20.01 sdetails
#30.01 sdetails
#40.01 sdetails
#50.01 sdetails
#6ACCEPTED0.05 sdetails
#70.12 sdetails
#80.08 sdetails
#90.08 sdetails
#100.08 sdetails
#110.01 sdetails
#120.01 sdetails
#130.01 sdetails
#140.04 sdetails
#150.01 sdetails
#160.01 sdetails
#170.01 sdetails
#180.01 sdetails
#190.01 sdetails
#200.01 sdetails
#210.01 sdetails

Compiler report

input/code.cpp: In function 'void dfs(long long int, long long int)':
input/code.cpp:20:9: warning: unused variable 'cnt' [-Wunused-variable]
   20 |     int cnt = 0;
      |         ^~~

Code

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

#define int long long

#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;

const int N = 1e5 + 5;

int n;
vector<int> adj[N];
vector<pii> ans;

void dfs(int u, int p) {
    int cnt = 0;
    vector<int> c;
    for (int v : adj[u]) {
        if (v == p) continue;
        c.push_back(v);
        dfs(v, u);
    }
    for (int i = 0; i + 1 < sz(c); i += 2) {
        ans.push_back({c[i], c[i + 1]});
    }
    if (sz(c) == 1) {
        ans.push_back({u, c[0]});
    } else if (sz(c) & 1) {
        ans.push_back({c[sz(c) - 2], c[sz(c) - 1]});
    }
}

signed main() {
    cin.tie(0)->sync_with_stdio(0);
    cin.exceptions(cin.failbit); // RTE if input wrong datatype

    cin >> n;
    for (int i = 1; i < n; i++) {
        int u, v;
        cin >> u >> v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    dfs(1, 0);

    cout << sz(ans) << '\n';
    for (auto [u, v] : ans) cout << u << ' ' << v << '\n';
}

Test details

Test 1

Verdict: ACCEPTED

input
10
1 5
1 7
1 8
1 3
...

correct output
5
5 2
7 9
8 6
3 10
...

user output
5
5 7
8 3
4 10
6 9
...

Test 2

Verdict:

input
10
4 5
3 4
2 3
9 10
...

correct output
1
10 1

user output
9
9 10
8 9
7 8
6 7
...

Test 3

Verdict:

input
10
1 8
1 3
3 5
5 7
...

correct output
3
7 10
8 2
1 9

user output
6
5 7
6 9
6 10
5 4
...

Test 4

Verdict:

input
10
1 5
3 7
2 10
3 8
...

correct output
3
10 8
6 4
5 9

user output
6
7 9
7 8
10 3
3 4
...

Test 5

Verdict:

input
10
4 8
3 4
4 6
2 3
...

correct output
3
8 7
10 9
1 6

user output
6
5 10
8 6
6 7
4 9
...

Test 6

Verdict: ACCEPTED

input
100000
1 56967
1 56618
1 42321
1 82550
...

correct output
50000
56967 16911
56618 39942
42321 99902
82550 2538
...

user output
50000
56967 56618
42321 82550
46223 97282
72319 48904
...
Truncated

Test 7

Verdict:

input
100000
92297 92298
23511 23512
68057 68058
65434 65435
...

correct output
1
100000 1

user output
99999
99999 100000
99998 99999
99997 99998
99996 99997
...
Truncated

Test 8

Verdict:

input
100000
17747 97512
10397 12053
679 6975
4013 14565
...

correct output
25057
92881 76094
20353 87429
16069 96487
71186 52809
...

user output
66607
26745 92881
14845 26745
73988 76094
20353 73988
...
Truncated

Test 9

Verdict:

input
100000
72941 72942
11232 11233
73464 73465
30042 30043
...

correct output
489
16423 85168
20707 94190
36505 54940
96411 44067
...

user output
99032
21976 21977
21975 21976
21974 21975
21973 21974
...
Truncated

Test 10

Verdict:

input
100000
31451 31452
7473 7474
24056 24057
85181 85182
...

correct output
51
25638 2983
87594 87371
92001 50610
46744 100000
...

user output
99900
63318 63319
63317 63318
63316 63317
63315 63316
...
Truncated

Test 11

Verdict:

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

correct output
2
2 6
4 10

user output
7
5 6
4 5
9 10
8 9
...

Test 12

Verdict:

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

correct output
2
4 7
3 6

user output
3
3 4
6 7
2 5

Test 13

Verdict:

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

correct output
2
3 6
2 5

user output
3
5 6
2 3
3 4

Test 14

Verdict:

input
65538
1 2
1 3
1 4
3 5
...

correct output
16385
34 36
40 42
35 41
48 50
...

user output
32769
33 34
35 36
31 32
39 40
...
Truncated

Test 15

Verdict:

input
11
1 2
1 3
2 4
2 5
...

correct output
2
9 11
8 10

user output
7
4 8
5 9
4 5
6 10
...

Test 16

Verdict:

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

correct output
2
5 7
4 6

user output
3
4 5
6 7
2 3

Test 17

Verdict:

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

correct output
2
5 7
4 6

user output
3
4 5
6 7
2 3

Test 18

Verdict:

input
10
8 4
3 4
4 6
2 3
...

correct output
3
8 7
10 9
1 6

user output
6
5 10
8 6
6 7
4 9
...

Test 19

Verdict:

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

correct output
2
6 7
3 4

user output
3
3 6
4 7
2 5

Test 20

Verdict:

input
8
1 2
1 3
2 4
2 5
...

correct output
3
4 7
6 8
1 5

user output
4
4 5
6 7
3 8
2 3

Test 21

Verdict:

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

correct output
3
9 8
6 10
3 7

user output
5
6 9
5 8
2 4
2 3
...