Submission #1299281

#TimeUsernameProblemLanguageResultExecution timeMemory
1299281AksLolCodingSeptember (APIO24_september)C++17
100 / 100
214 ms17644 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 j=0; j<m; j++){ for (int i=0; i<n-1; i++){ maxpos[v2[j][i]]=max(maxpos[v2[j][i]],i); }} dfs(child,maxpos,0); int ans=0,cur=-1; for (int i=0; i<n-1; i++){ if (cur<i)ans++; for (int j=0; j<m; j++){ cur=max(cur,maxpos[v2[j][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...