Submission #1179038

#TimeUsernameProblemLanguageResultExecution timeMemory
1179038GurbanSeptember (APIO24_september)C++20
100 / 100
115 ms11712 KiB
#include "september.h" #include <bits/stdc++.h> using namespace std; const int maxn=1e5+5; int vis[maxn]; int num[maxn]; int cnt[maxn]; vector<int>E[maxn]; int solve(int N, int M, vector<int> F, vector<vector<int>> S){ for(int i = 0;i < N;i++) E[i].clear(), vis[i] = 0, num[i] = 0, cnt[i]=0; for(int i = 1;i < N;i++) E[F[i]].push_back(i), num[F[i]]++; int K = 0; vector<set<int>>v(M); int bad = 0; int un = 0; for(int i = 0;i < N-1;i++){ for(int j = 0;j < M;j++){ v[j].insert(S[j][i]); if(vis[S[j][i]] == 0){ un++; vis[S[j][i]] = 1; bad += num[S[j][i]]; num[F[S[j][i]]]--; if(vis[F[S[j][i]]] == 1) bad--; } cnt[S[j][i]]++; if(cnt[S[j][i]] == M) un--; } if(bad == 0 and un == 0){ K++; bad = 0; un = 0; for(int j = 0;j < M;j++) v[j].clear(); } } return K; }
#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...