Submission #933378

#TimeUsernameProblemLanguageResultExecution timeMemory
933378themm1Inside information (BOI21_servers)C++17
5 / 100
3565 ms11240 KiB
#include <bits/stdc++.h> using namespace std; template <class T, class U> ostream& operator<<(ostream& out, const pair<T, U> &pr) {out << "(" << pr.first << "; " << pr.second << ")";return out;} template <class T> ostream& operator<<(ostream& out, const set<T> &s) {out << "{";for(const auto &x : s)out << x << ", ";out << "}";return out;} template <class T, class U> ostream& operator<<(ostream& out, const map<T, U> &m) {out << "{";for(const auto &x : m)out << x << ", ";out << "}";return out;} template<class T> ostream& operator<<(ostream& out, const vector<T> &a){out << "[";for(const auto &x : a)out << x << ", ";out << "]";return out;} #define dmp(x) cerr << #x << " = " << x << endl #define dmpn(x) cerr << #x << " = " << x << "; " using ll = long long; using ld = long double; using pii = pair<int, int>; #define pb push_back #define ff first #define ss second #define all(x) begin(x), end(x) #define sz(x) (int)x.size() #define contains(s,x) ((s).find(x) != (s).end()) const int MOD = 998244353; struct Edge { int u, id; }; int N, K; vector<vector<Edge>> adj; int dfs(int u, int p, int prev_id, int target) { int cnt = (target == -1 || u == target); for (Edge e : adj[u]) { if (e.u != p && e.id > prev_id) { cnt += dfs(e.u, u, e.id, target); } } return cnt; } void solve() { cin >> N >> K; adj.assign(N, {}); int Q = N - 1 + K, edge_idx = 1; while (Q--) { char type; int u; cin >> type >> u; u--; if (type == 'S') { int v; cin >> v; v--; adj[u].pb({ v, edge_idx }); adj[v].pb({ u, edge_idx }); edge_idx++; } else if (type == 'Q') { int v; cin >> v; v--; int cnt = dfs(v, -1, 0, u); if (cnt > 0) cout << "yes" << endl; else cout << "no" << endl; } else { int cnt = dfs(u, -1, 0, -1); cout << cnt << endl; } } } int32_t main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t = 1; // cin >> t; while (t--) { solve(); } }
#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...