제출 #1152873

#제출 시각아이디문제언어결과실행 시간메모리
1152873burgerguySeptember (APIO24_september)C++20
100 / 100
451 ms17008 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) { vector<set<ll>> initialTree(N); for (int i = 1; i < F.size(); i++) { initialTree[F[i]].insert(i); } set<ll> curProcessing; map<ll,ll> seen; ll curDay = 0; for (int i = 0; i < N - 1; i++) { for (int j = 0; j < M; j++) { curProcessing.insert(S[j][i]); seen[S[j][i]]++; curProcessing.insert(initialTree[S[j][i]].begin(), initialTree[S[j][i]].end()); if(seen[S[j][i]] == M) { curProcessing.erase(S[j][i]); initialTree[F[S[j][i]]].erase(S[j][i]); } } if(curProcessing.empty()) ++curDay; } return curDay; }
#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...