제출 #1162446

#제출 시각아이디문제언어결과실행 시간메모리
1162446nninSeptember (APIO24_september)C++17
45 / 100
144 ms14484 KiB
#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 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...