Submission #659798

#TimeUsernameProblemLanguageResultExecution timeMemory
659798NothingXDInside information (BOI21_servers)C++17
0 / 100
10 ms3540 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef unsigned long long ull; typedef pair<int,int> pii; typedef pair<ll,ll> pll; void debug_out() { cerr << endl; } template <typename Head, typename... Tail> void debug_out(Head H, Tail... T) { cerr << " " << H; debug_out(T...); } #define debug(...) cerr << "(" << #__VA_ARGS__ << "):", debug_out(__VA_ARGS__) #define all(x) x.begin(), x.end() #define MP(x, y) make_pair(x, y) #define F first #define S second const int maxn = 1e4 + 10; int n, q, N, h[maxn], cnt[maxn], ans[maxn]; int mark[maxn]; vector<pii> g[maxn]; vector<pii> Q2[maxn]; vector<pair<pii,int>> Q1[maxn]; void dfs(int v, int p = -1){ for (auto [u, w]: g[v]){ if (w > h[v]){ h[u] = w; dfs(u, v); } } } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> q; N = n + q; int tmp = 0; for (int i = 1; i < N; i++){ char t; cin >> t; if (t == 'S'){ tmp++; int u, v; cin >> u >> v; g[u].push_back({v, tmp}); g[v].push_back({u, tmp}); } else if (t == 'Q'){ int x, y; cin >> x >> y; Q1[y].push_back({{tmp, x}, i}); mark[i] = 1; } else{ int x; cin >> x; Q2[x].push_back({tmp, i}); mark[i] = 2; } } for (int i = 1; i <= n; i++){ memset(cnt, 0, sizeof cnt); for (int j = 1; j <= n; j++) h[j] = N; h[i] = 0; dfs(i); for (int j = 1; j <= n; j++){ cnt[h[j]]++; } for (int j = 1; j <= N; j++) cnt[j] += cnt[j-1]; for (auto [x, t]: Q1[i]){ if (h[x.S] <= x.F) ans[t] = 1; } for (auto [x, t]: Q2[i]){ ans[t] = cnt[x]; } } for (int i = 1; i < N; i++){ if (mark[i] == 1) cout << (ans[i]? "yes\n": "no\n"); else if (mark[i] == 2) cout << ans[i] << '\n'; } return 0; }
#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...