제출 #1017725

#제출 시각아이디문제언어결과실행 시간메모리
1017725MohamedFaresNebili9월 (APIO24_september)C++17
0 / 100
1 ms3420 KiB
#include <bits/stdc++.h> using namespace std; vector<int> adj[100005]; int act[100005], rem[100005]; bool leaf[100005]; int solve(int N, int M, vector<int> F, vector<vector<int>> S) { for(int l = 0; l < N; l++) adj[l].clear(), act[l] = rem[l] = leaf[l] = 0; for(int l = 1; l < N; l++) adj[F[l]].push_back(l); for(int l = 0; l < N; l++) { if(adj[l].size() > 0) act[l] = (int)adj[l].size(); else leaf[l] = 1; } int res = 0, cur = 0; for(int l = 0; l < N - 1; l++) { int U = S[0][l]; if(leaf[U]) { while(F[U] != 0) { act[F[U]]--; if(act[F[U]] == 0) { leaf[F[U]] = 1; if(rem[F[U]]) { cur--; U = F[U]; } } break; } if(cur == 0) ++res; } else rem[U] = 1, cur++; } return res; }
#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...