제출 #1333747

#제출 시각아이디문제언어결과실행 시간메모리
1333747sporknivesLaser Strike (EGOI25_laserstrike)C++20
10 / 100
5 ms512 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);
        set<int> adj[N]; 
        for (int i = 0; i < N - 1; ++i) {
            cin >> a[i] >> b[i];
            adj[a[i]].insert(b[i]);
            adj[b[i]].insert(a[i]);
        }
		
        string message = "";
        vector<int> l;
        
        for(int j=0;j<N;j++) {
			for (int i=0;i<N;i++) {
				if(adj[i].size()==1) {
					int x = *(adj[i].begin());
					l.push_back(i);
					if(x>i)message+="1";
					else message+="0";
					
					adj[i].erase(x);
					adj[x].erase(i);
				}
			}
		}

        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;
			bool guess_a = true;
			if(message[i]=='1') {
				if(a<b)guess_a=true;
				else guess_a=false;
			}
			else {
				if(a<b)guess_a=false;
				else guess_a=true;
			}
            if (guess_a) {
                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...