Submission #1173077

#TimeUsernameProblemLanguageResultExecution timeMemory
1173077ladnoooSeptember (APIO24_september)C++20
100 / 100
112 ms11712 KiB
#include <bits/stdc++.h> using namespace std; int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) { int sum = 0; vector<int> was(N), used(N), wass(N - 1, 1); int sx = 0; for(int i = 0; i < N - 1; i++) { for(int j = 0; j < M; j++) { was[S[j][i]]++; if(was[S[j][i]] == 1) sx++; if(was[S[j][i]] == M) sx--; } if(sx > 0) wass[i] = 0; } vector<int> g[N]; for(int i = 1; i < N; i++) { g[F[i]].push_back(i); } int cnt = 0; for (int i = 0; i < N - 1; i++) { int curr = S[0][i]; if(used[curr] == 2) { cnt--; } used[curr] = 1; for(int u : g[curr]) { if (used[u] != 1) { used[u] = 2; cnt++; } } if((cnt == 0) && (wass[i] == 1)) sum++; } return sum; }
#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...