Submission #1362342

#TimeUsernameProblemLanguageResultExecution timeMemory
1362342frogrammerLaser Strike (EGOI25_laserstrike)C++20
1 / 100
2 ms424 KiB
// Online C++ compiler to run C++ program online
#include <bits/stdc++.h>
using namespace std;

void dfs(int node, stack<int>& order, vector<vector<int>>& adj, vector<int>& rem, string& s){
    rem[node] = 1;
    order.push(node);
    for(int v : adj[node]){
        if(rem[v]) s+=(v<node)+'0';
        else dfs(v, order, adj, rem, s);
    }
    
}

int main() {
    int n,p;
    cin>>p>>n;
    
    if(p==1){
        vector<vector<int>> adj(n);
        int a,b;
        for(int i=0;i<n-1;i++){
            cin>>a>>b;
            adj[a].push_back(b);
            adj[b].push_back(a);
        }
        string s = "";
        stack<int> order;
        
        int idx = 0;
        int cnt = 0;
        for(int i=0;i<n;i++){
            if(adj[i].size()>cnt){
                cnt = adj[i].size();
                idx = i;
            }
        }
        
        vector<int> rem(n,0);
        dfs(idx, order, adj, rem,s);
        reverse(s.begin(),s.end());
        cout<<s<<"\n";
        for(int i=0;i<n-1;i++){
            cout<<order.top()<<"\n";
            order.pop();
        }
    }else{
        string s;
        cin>>s;
        int a,b;
        for(char c : s){
            cin>>a>>b;
            if(c=='1') cout<<b<<endl;
            else cout<<a<<endl;
        }
    }

    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...