제출 #1333820

#제출 시각아이디문제언어결과실행 시간메모리
1333820gelastropodLaser Strike (EGOI25_laserstrike)C++20
10 / 100
4 ms468 KiB
#include <bits/stdc++.h>

using namespace std;

vector<int> p, l;
vector<vector<int>> adjlist;

void dfs(int n, int _p) {
    for (int i : adjlist[n]) {
        if (i == _p) continue;
        dfs(i, n);
        p[i] = n;
    }
    l.push_back(n);
}

int main() {
    int P, N, a, b;
    cin >> P >> N;
    if (P == 1) {
        adjlist.resize(N, vector<int>());
        vector<int> freq(N, 0);
        p.resize(N, -1);
        for (int i = 0; i < N - 1; ++i) {
            cin >> a >> b;
            adjlist[a].push_back(b);
            adjlist[b].push_back(a);
        }
        dfs(0, -1);
        for (int i = 0; i < N - 1; i++) {
            if (l[i] > p[l[i]]) cout << '1';
            else cout << '0';
        }
        cout << endl;
        for (int i = 0; i < N - 1; i++) cout << l[i] << endl;
    }
    else {
        cin.ignore(100, '\n');
        string message;
        getline(cin, message);
        for (int i = 0; i < N - 1; i++) {
            cin >> a >> b;
            if (message[i] == '1') cout << max(a, b) << endl;
            else cout << min(a, b) << endl;
        }
    }
    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...