제출 #1217476

#제출 시각아이디문제언어결과실행 시간메모리
1217476shenfe1Inside information (BOI21_servers)C++20
2 / 100
104 ms58848 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") // #pragma GCC target("avx2") using namespace std; #define ll long long #define ld long double #define pb push_back #define sz(s) (int)s.size() #define all(v) v.begin(),v.end() #define pii pair<int,int> #define ull unsigned ll // #define int ll void chmin(int &x,int y){x=min(x,y);} const int MAX=6e5+10; const int mod=1e9+7; // const int inf=1e18; int n,q; vector<int> f[MAX]; vector<int> g[MAX]; vector<pii> qr[MAX]; int tin[MAX],tout[MAX],timer; int ans[MAX]; void dfs(int v){ tin[v]=++timer; for(auto to:g[v]){ dfs(to); } tout[v]=timer; } bool par(int a,int b){ return (tin[a]<=tin[b]&&tout[b]<=tout[a]); } void solve(){ cin>>n>>q; for(int i=1;i<=n;i++){ f[i].pb(i); } int cur=n; int cnt=0; for(int T=1;T<=q+n-1;T++){ char c; int x,y; cin>>c>>x>>y; if(c=='S'){ cur++; g[cur].pb(f[x].back()); g[cur].pb(f[y].back()); f[x].pb(cur); f[y].pb(cur); } else{ qr[f[x].back()].pb({y,++cnt}); } } dfs(cur); for(int i=1;i<=cur;i++){ for(auto [to,id]:qr[i]){ if(par(i,to))ans[id]=1; } } for(int i=1;i<=cnt;i++){ cout<<(ans[i]?"yes":"no")<<"\n"; } } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); long double T=clock(); int t=1; // cin>>t; while(t--)solve(); // cerr<<"Runtime: "<<(clock()-T)/CLOCKS_PER_SEC<<"\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...