Submission #1184359

#TimeUsernameProblemLanguageResultExecution timeMemory
1184359HADI_TSeptember (APIO24_september)C++20
0 / 100
2 ms2884 KiB
#include "september.h" #include <bits/stdc++.h> #define ll long long #define F first #define S second #define pb push_back const int N = 1e5+10; using namespace std; vector<int>adj[N]; bool vis[N]; set<int>st; void dfs(int node,int parent) { //cout<<node<<endl; if(vis[node]) return ; vis[node] = 1; for(auto it:adj[node]) { if(it == parent) continue; st.insert(it); dfs(it , node); } } int solve(int n, int m, std::vector<int> f, std::vector<std::vector<int>> s) { int ans = INT_MAX; for(int i=1;i<n;i++) { adj[i].pb(f[i]); adj[f[i]].pb(i); } for(int i=0;i<m;i++) { int cur = 0; for(int j=0;j<n;j++) vis[j] = 0; st.clear(); for(int j=0;j<s[i].size();j++) { if(st.find(s[i][j]) != st.end()) { st.erase(st.find(s[i][j])); continue; } if(st.empty()) cur++; dfs(s[i][j],f[s[i][j]]); } ans = min(ans , cur); } for(int i=0;i<n;i++) { adj[i].clear(); vis[i] = 0; } st.clear(); return ans; }
#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...