제출 #1294290

#제출 시각아이디문제언어결과실행 시간메모리
1294290eri169월 (APIO24_september)C++20
45 / 100
159 ms14124 KiB
#include <bits/stdc++.h> using namespace std; void dfs(vector <vector<int>>& child,vector<int>& maxpos, int u){ for (int i=0; i<child[u].size(); i++){ dfs(child,maxpos,child[u][i]); maxpos[u]=max(maxpos[u],maxpos[child[u][i]]); } } int solve(int n, int m, vector<int> v1,vector<vector<int>> v2){ vector <int> maxpos(n); vector <vector<int>> child(n); for (int i=1; i<n; i++){ child[v1[i]].push_back(i); } for (int i=0; i<n-1; i++){ maxpos[v2[0][i]]=max(maxpos[v2[0][i]],i); } dfs(child,maxpos,0); int ans=0; int cur=-1; for (int i=0; i<n-1; i++){ if (cur<i){ans++;} cur=max(cur,maxpos[v2[0][i]]); } /* for (int i=0; i<n; i++){ cout<<maxpos[i]<<' '; } */ return ans; }
#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...