Submission #1223987

#TimeUsernameProblemLanguageResultExecution timeMemory
1223987spetrThe Ties That Guide Us (CEOI23_incursion)C++20
0 / 100
144 ms8812 KiB
#include <vector>
#include "incursion.h"
#include <cstdio>
#include <bits/stdc++.h>

using namespace std;
#define vl vector <long long>
#define ll long long
#define vll vector<vector<long long>>

vll graf;
vector<int> ans;
set<ll> vis;

void dfs(ll x, ll d){
    ans[x-1] = d;
    vis.insert(x);
    for (ll i = 0; i < graf[x].size(); i++){
        ll v = graf[x][i];
        auto exist = vis.find(v);
        if (exist == vis.end()){
            dfs(v, d+1);
        }
    }
    return;
}

std::vector<int> mark(std::vector<std::pair<int, int>> F, int safe) {
    vis.clear();
    graf.clear();
    ans.clear();
    long long N = F.size()+1;

    ans.resize(N,0);
    for (ll i = 0; i < N+1; i++){graf.push_back({});}
    for (ll i = 0; i < F.size(); i++){
        pair p = F[i];
        graf[p.first].push_back(p.second);
        graf[p.second].push_back(p.first);
    }

    dfs(safe, 0);
    return ans;
}
void step(ll x, ll dist){
    if (dist == 0){
        return;
    }

    for (ll i = 0; i < graf[x].size(); i++){
        ll v = graf[x][i];
        auto exist = vis.find(v);
        if (exist == vis.end()){
            ll p = visit(v);
            vis.insert(v);
            if (p < dist){
                step(v, p);
            }
            else {visit(x);}
        }
    }
}

void locate(std::vector<std::pair<int, int>> F, int curr, int t) {
    vis.clear();
    graf.clear();
    long long N = F.size()+1;
    for (ll i = 0; i < N+1; i++){graf.push_back({});}
    for (ll i = 0; i < F.size(); i++){
        pair p = F[i];
        graf[p.first].push_back(p.second);
        graf[p.second].push_back(p.first);
    }
    
    vis.insert(curr);
    step(curr, t);


    
    return;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...