Submission #1348635

#TimeUsernameProblemLanguageResultExecution timeMemory
1348635tamijiSeptember (APIO24_september)C++20
59 / 100
172 ms16856 KiB
#pragma GCC optimize("O3")
#include<bits/stdc++.h>
using namespace std;
#include"september.h"
using ll=long long;
#define rep(i,n) for(ll i=0;i<(n);++i)
#define repr(i,n) for(ll i=(n)-1;i>=0;--i)
#define repa(i,m,n) for(ll i=(m);i<(n);++i)
#define repra(i,m,n) for(ll i=(n)-1;i>=(m);--i)
#define all(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
constexpr ll INF=1LL<<60;
struct ll2{ll a,b;friend auto operator<=>(ll2,ll2)=default;};
struct ll3{ll a,b,c;friend auto operator<=>(ll3,ll3)=default;};
struct ll4{ll a,b,c,d;friend auto operator<=>(ll4,ll4)=default;};
template<typename T>
ostream& operator<<(ostream& os,vector<T> A){
    os<<'(';
    for(T a:A)os<<a<<' ';
    os<<')';
    return os;
}
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S){
	vector<vector<ll>> G(N);
	repa(i,1,N)G[F[i]].push_back(i);
	set<ll> T;
	rep(i,N)T.insert(i);
	for(auto A:S){
		vector<ll> vis(N,0);
		ll c=0;
		A.push_back(0);
		rep(i,N){
			auto dfs=[&](auto&&dfs,ll x)->int{
				if(vis[x])return 0;
				++c;
				vis[x]=1;
				for(ll y:G[x])dfs(dfs,y);
				return 0;
			};
			--c;
			dfs(dfs,A[i]);
			if(c)T.erase(i);
		}
	}
	return T.size()-1;
}
#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...