Submission #1162438

#TimeUsernameProblemLanguageResultExecution timeMemory
1162438nninSeptember (APIO24_september)C++20
0 / 100
0 ms320 KiB
#include "september.h"
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>

int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
	vector<int> posi(N, -1);
	for(vector<int> arr:S) for(int i=0;i<N-1;i++) {
		posi[arr[i]] = max(posi[arr[i]], i);
	}
	vector<pii> ord;
	for(int i=1;i<N;i++) {
		ord.push_back({posi[i], i});
	}
	sort(ord.begin(), ord.end());
	vector<int> deg(N, 0);
	for(int i=1;i<N;i++) {
		deg[F[i]]++;
	}
	queue<int> q;
	for(int i=1;i<N;i++) {
		if(deg[i]==0) q.push(i);
	}
	while(!q.empty()) {
		int u = q.front();
		q.pop();
		posi[F[u]] = max(posi[F[u]], posi[u]);
		deg[F[u]]--;
		if(deg[F[u]]==0) q.push(F[u]);
	}
	int day = 0, cur = -1;
	for(auto [p, u]:ord) {
		if(p>cur) day++;
		cur = max(cur, posi[u]);
	}
	return day;
}
#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...