#include <bits/stdc++.h>
using namespace std;
vector<int> g;
vector<bool> s;
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,{});
int ans=0,t=0,agt,c,p;
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]){
agt++;
}
if (u[r][c]<0){
u[r][c]++;
if (!u[r][c]){
agt--;
}
}
else{
for (int j=0; j<r; j++){
if (!u[j][c]){
agt++;
}
u[j][c]--;
if (!u[j][c]){
agt--;
}
}
for (int j=r+1; j<M; j++){
if (!u[j][c]){
agt++;
}
u[j][c]--;
if (!u[j][c]){
agt--;
}
}
}
}
if (!t and !agt){
ans++;
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |