Submission #1137938

#TimeUsernameProblemLanguageResultExecution timeMemory
1137938SmuggingSpunSynchronization (JOI13_synchronization)C++20
0 / 100
49 ms17988 KiB
#include<bits/stdc++.h> #define taskname "A" using namespace std; const int lim = 1e5 + 5; const int INF = 1e9; int n, m, q; pair<int, int>edge[lim]; vector<int>g[lim]; namespace sub1{ int ans = 0; bitset<lim>state; map<pair<int, int>, vector<int>>G_edge; void dfs(int s, int p = -1, int t = INF){ ans++; for(int& d : g[s]){ if(d != p){ pair<int, int>cur = make_pair(min(s, d), max(s, d)); auto it = lower_bound(G_edge[cur].begin(), G_edge[cur].end(), t); if(it != G_edge[cur].begin()){ dfs(d, s, *prev(it)); } } } } void solve(){ state.reset(); for(int t = 0; t < m; t++){ int x; cin >> x; if(state.test(x)){ state.reset(x); } else{ state.set(x); G_edge[edge[x]].emplace_back(t); } } int u; cin >> u; dfs(u); cout << ans; } } namespace sub23{ void solve(){ } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); if(fopen(taskname".inp", "r")){ freopen(taskname".inp", "r", stdin); } cin >> n >> m >> q; for(int i = 1; i < n; i++){ auto& [u, v] = edge[i]; cin >> u >> v; if(u > v){ swap(u, v); } g[u].emplace_back(v); g[v].emplace_back(u); } if(q == 1){ sub1::solve(); } else{ sub23::solve(); } }

Compilation message (stderr)

synchronization.cpp: In function 'int main()':
synchronization.cpp:52:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   52 |                 freopen(taskname".inp", "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...