Submission #1333733

#TimeUsernameProblemLanguageResultExecution timeMemory
1333733justin271828Laser Strike (EGOI25_laserstrike)C++20
0 / 100
2 ms420 KiB
#include <bits/stdc++.h>
using namespace std;

#define ii pair<int, int>
#define f first
#define s second

int main() {
    int P, N;
    cin >> P >> N;
    if (P == 1) {
        int ans = 0;
        vector<int> v[N];
        for (int i = 1; i < N; i++) {
            int a, b;
            cin >> a >> b;
            v[a].push_back(b);
            v[b].push_back(a);
        }
        int edge = -1;
        for (int i = 0; i < N; i++) {
            if (v[i].size() == 1) edge = i;
        }
        int x = edge;
        if (v[x][0] < x) ans = 1;
        cout << ans << "\n";
        cout << x << "\n";
        int prev = x;
        x = v[x][0];
        while (v[x].size() == 2) {
            cout << x << "\n";
            if (v[x][0] == prev) {
                prev = x;
                x = v[x][1];
            }
            else {
                prev = x;
                x = v[x][0];
            }
        }
    }
    else {
        int str;
        cin >> str;
        int a, b;
        cin >> a >> b;
        int x;
        if (a == 1) {
            cout << max(a, b) << "\n";
            x = min(a, b);}
        else {
            cout << min(a, b) << "\n";
            x = max(a, b);}
        for (int i = 2; i < N; i++) {
            cin >> a >> b;
            cout << x << "\n";
            if (a == x) x = b;
            else x = a;
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...