#include "september.h"
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
int posi[100005];
vector<int> adj[100005];
void dfs(int u) {
for(int v:adj[u]) {
dfs(v);
posi[u] = max(posi[u], posi[v]);
}
}
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
adj[0].clear();
for(int i=1;i<N;i++) {
posi[i] = -1;
adj[i].clear();
}
for(int i=0;i<M;i++) for(int j=0;j<N-1;j++) {
posi[S[i][j]] = max(posi[S[i][j]], j);
}
vector<pii> ord;
for(int i=1;i<N;i++) {
ord.push_back({posi[i], i});
adj[F[i]].push_back(i);
}
sort(ord.begin(), ord.end());
dfs(0);
int day = 0, cur = -1;
for(auto [p, u]:ord) {
if(p>cur) day++;
cur = max(cur, posi[u]);
}
return day;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |