Submission #1175538

#TimeUsernameProblemLanguageResultExecution timeMemory
1175538rafsanamin2020September (APIO24_september)C++20
100 / 100
158 ms12680 KiB
#include <bits/stdc++.h> using namespace std; const int MAX = 1E6; int maxidx = 0; vector<vector<int>> idx; vector<vector<int>> C_List; vector<bool> visited; void dfs(int n, int N, int M) { if (visited[n]) { return; } for (int i = 0; i < idx.size(); i++) { maxidx = max(maxidx, idx[i][n]); } for (int i = 0; i < C_List[n].size(); i++) { dfs(C_List[n][i], N, M); } visited[n] = true; } int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) { int ans = 0; maxidx = 0; idx = vector<vector<int>>(M, vector<int>(N)); C_List = vector<vector<int>>(N); visited = vector<bool>(N, false); for (int i = 1; i < N; i++) { C_List[F[i]].push_back(i); } for (int i = 0; i < M; i++) { for (int j = 0; j < N - 1; j++) { idx[i][S[i][j]] = j; } } for (int i = 0; i < N - 1; i++) { for (int j = 0; j < M; j++) { dfs(S[j][i], N, M); } if (maxidx == i) { ans++; } } 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...