#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 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... |