# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1072100 | edogawa_something | The Ties That Guide Us (CEOI23_incursion) | C++17 | 99 ms | 53148 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "incursion.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vii;
typedef pair<ll,ll> pii;
#define F first
#define S second
#define all(v) v.begin(),v.end()
#define pb push_back
const ll M=5e5+10;
const ll inf=2e18;
vii adjj[M],adj[M];
bool vis[M],viss[M];
ll diss[M],dis[M];
void mdfs(ll x,ll d=0) {
if(vis[x])
return;
vis[x]=1;
dis[x]=d;
for(auto it:adj[x])
mdfs(it,d+1);
}
void ldfs(ll x,ll d=0) {
if(viss[x])
return;
viss[x]=1;
diss[x]=d;
for(auto it:adjj[x])
ldfs(it,d+1);
}
std::vector<int> mark(std::vector<std::pair<int, int>> F, int safe) {
for(int i=0;i<F.size();i++)
adj[F[i].F].pb(F[i].S),adj[F[i].S].pb(F[i].F);
ll n=F.size()+1;
ll st=0;
for(int i=1;i<=n;i++) {
if(adj[i].size()==1)
st=i;
}
vector<int>ans;
mdfs(st);
if(dis[safe]>n/2) {
for(int i=1;i<=n;i++) {
if(dis[i]>=dis[safe])
ans.pb(1);
else
ans.pb(0);
}
}
else {
for(int i=1;i<=n;i++) {
if(dis[i]<=dis[safe])
ans.pb(1);
else
ans.pb(0);
}
}
return ans;
return {};
}
void locate(std::vector<std::pair<int, int>> F, int curr, int t) {
/*for(int i=0;i<F.size();i++)
adjj[F[i].F].pb(F[i].S),adjj[F[i].S].pb(F[i].F);
ll n=F.size()+1;
for(int i=1;i<=n;i++)
vis[i]=0;
ll st=0;
for(int i=1;i<=n;i++) {
if(adjj[i].size()==1)
st=i;
}
ldfs(st);
if((diss[curr]>n/2)^(t==0)) {
for(int i=1;i<=n;i++)
diss[i]=n-1-diss[i];
}
if(t==1) {
ll par=curr;
ll cnt=0;
while(t==1) {
for(auto it:adjj[curr]) {
if(diss[it]>diss[curr]) {
par=curr,curr=it;
t=visit(it);
break;
}
}
}
visit(par);
return;
}
else {
while(t==0) {
for(auto it:adjj[curr]) {
if(diss[it]<diss[curr]) {
curr=it;
t=visit(it);
break;
}
}
}
return;
}*/
}
Compilation message (stderr)
# | 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... |