Submission #1201752

#TimeUsernameProblemLanguageResultExecution timeMemory
1201752noopSeptember (APIO24_september)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h> using namespace std; vector<int> g; vector<bool> s; vector<int> agunion; vector<unordered_map<int,int> > u; int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) { g.resize(N,0); s.resize(N,0); u.resize(M,{}); agunion.resize(M,0); int ans=0,t=0,c,p; bool flag; for (int i=1; i<N; i++){ g[F[i]]++; } for (int i=0; i<S[0].size(); i++){ c=S[0][i]; if (g[c]){ t++; s[c]=1; } p=F[c]; g[p]--; if (!g[p] and s[p]){ t--; s[p]=0; } for (int r=0; r<M; r++){ c=S[r][i]; if (!u[r][c]){ agunion[r]++; } u[r][c]++; if (!u[r][c]){ agunion[r]--; } for (int j=0; j<r; j++){ if (!u[j][c]){ agunion[j]++; } u[j][c]--; if (!u[j][c]){ agunion[j]--; } } for (int j=r+1; j<M; j++){ if (!u[j][c]){ agunion[j]++; } u[j][c]--; if (!u[j][c]){ agunion[j]--; } } } flag=1; for (int r=0; r<M; r++){ if (agunion[r]){ flag=0; } } if (!t and flag){ 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...