Submission #1333855

#TimeUsernameProblemLanguageResultExecution timeMemory
1333855YSH2020Laser Strike (EGOI25_laserstrike)C++17
1 / 100
6 ms412 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {
    int P, N;
    cin >> P >> N;
    if (P == 1) {
        vector<int> a(N - 1);
        vector<int> b(N - 1);
        int counts[N]; memset(counts,0,sizeof(counts));
        int taken[N-1];
        for (int i = 0; i < N - 1; ++i) {
            cin >> a[i] >> b[i];
            counts[a[i]]++;
            counts[b[i]]++;
            taken[i]=0;
        }
        string message = "";
        vector<int> l;
        for (int i = 0; i < N-1; i++) {
            for (int j = 0; j < N-1; j++) if (taken[j]==0 && (counts[a[j]]==1 || counts[b[j]]==1)) {
                if (counts[a[j]]==1) {
                    l.push_back(a[j]);
                    if (a[j] < b[j]) message += "0";
                    else message += "1";
                }
                else {
                    l.push_back(b[j]);
                    if (b[j] < a[j]) message += "0";
                    else message += "1";
                }
                counts[a[j]]--;
                counts[b[j]]--;
                break;
            }
        }
        cout << message << 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) {
            int a, b;
            cin >> a >> b;
            if (message[i]=='0') cout << a << endl;
            else cout << 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...