#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);
break;
}
else {visit(x);}
}
}
return;
}
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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |