제출 #488746

#제출 시각아이디문제언어결과실행 시간메모리
488746CSQ31Inside information (BOI21_servers)C++17
2.50 / 100
3564 ms14924 KiB
#include<bits/stdc++.h> using namespace std; //sub 1/2 trivial //sub 3 path of smaller or larger edges //sub task 4 binary tree can directly traverse the tree since logn height //sub 5 //sub 6 #define pb push_back #define fi first #define se second #define owo ios_base::sync_with_stdio(0);cin.tie(0); typedef pair<int,int> pii; const int MAXN = 3e5; vector<pii>adj[MAXN]; int cnt = 0,ans = 0; bool dfs(int v,int u,int tar,int last){ if(v==tar)return 1; bool ok = 0; for(pii x:adj[v]){ if(x.fi==u)continue; if(x.se < last)ok = ok|dfs(x.fi,v,tar,x.se); } return ok; } void dfs(int v,int u,int last){ ans++; for(pii x:adj[v]){ if(x.fi==u)continue; if(x.se > last)dfs(x.fi,u,x.se); } } int main() { owo int n,k; cin>>n>>k; for(int i=0;i<n+k-1;i++){ char c; cin>>c; if(c=='S'){ int v,u; cin>>v>>u; adj[v].pb({u,++cnt}); adj[u].pb({v,cnt}); } if(c=='Q'){ int a,d; cin>>a>>d; if(dfs(a,0,d,1e9))cout<<"yes"<<'\n'; else cout<<"no"<<'\n'; } if(c=='C'){ int d;cin>>d; cout<<1<<'\n'; } } }
#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...
#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...