Submission #1353854

#TimeUsernameProblemLanguageResultExecution timeMemory
1353854JungPSSeptember (APIO24_september)C++20
45 / 100
81 ms2468 KiB
#include "september.h"

#include <bits/stdc++.h>
using namespace std;

int degree[100007];
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
	for(int i=0;i<N;++i) degree[i]=0;
	for(int i=1;i<N;++i) ++degree[F[i]];
	multiset<pair<int,int>,greater<pair<int,int>>> st;
	int cnt=0;
	for(auto i:S[0]){
		if(st.count({degree[F[i]],F[i]})){
			st.erase({degree[F[i]],F[i]});
			st.insert({degree[F[i]]-1,F[i]});
		}
		--degree[F[i]];
		st.insert({degree[i],i});

		if((*st.begin()).first==0){
			st.clear();
			++cnt;
		}
	}
	return cnt;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...