Submission #1000182

#TimeUsernameProblemLanguageResultExecution timeMemory
1000182EvirirSeptember (APIO24_september)C++17
100 / 100
247 ms16852 KiB
#include "september.h" #include <bits/stdc++.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> using namespace std; //using namespace __gnu_pbds; // #pragma GCC optimize("O3,unroll-loops") // #pragma GCC target("avx2") #define watch(x) cout<<(#x)<<"="<<(x)<<'\n' #define mset(d,val) memset(d,val,sizeof(d)) #define cbug if(DEBUG) cout #define setp(x) cout<<fixed<<setprecision(x) #define sz(x) (int)(x).size() #define all(x) begin(x), end(x) #define forn(i,a,b) for(int i=(a);i<(b);i++) #define fore(i,a,b) for(int i=(a);i<=(b);i++) #define pb push_back #define fbo find_by_order #define ook order_of_key typedef long long ll; typedef long double ld; typedef pair<ll,ll> ii; typedef vector<ll> vi; typedef vector<ii> vii; //template<typename T> //using pbds = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; void SD(int t=0){ cout<<"PASSED "<<t<<endl; } template<typename T> void amax(T &a, T b){ a=max(a,b); } template<typename T> void amin(T &a, T b){ a=min(a,b); } #define sz(x) (int)(x).size() int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) { int ans = 0; unordered_set<int> s; unordered_set<int> bad; // parent in s but itself not in s vector<vector<int>> adj(N); for (int i = 1; i < sz(F); i++) { adj[F[i]].pb(i); } for (int i = 0; i < N - 1; i++) { for (const auto& vec : S) { int u = vec[i]; if (s.count(u)) continue; s.insert(u); // add bad nodes for (int v : adj[u]) { if (!s.count(v)) bad.insert(v); } // remove self from bad nodes if (s.count(F[u])) { assert(bad.count(u)); bad.erase(u); } } if (sz(s) == i + 1 && bad.empty()) ans++; } 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...