#include "bits/stdc++.h"
#include "september.h"
using namespace std;
vector<vector<int>>g;
vector<vector<bool>>vis;
vector<set<int>>st;
void dfs(int u,int j){
vis[j][u]=true;
for(int v:g[u]){
if(!vis[j][v])st[j].insert(v),dfs(v,j);
}
}
int solve(int n,int m,vector<int>a,vector<vector<int>>vol){
g.assign(n,{});
st.assign(m,{});
vis.assign(m,vector<bool>(n,false));
for(int i=0;i<n;i++){
if(a[i]>=0)g[a[i]].push_back(i);
}
int cnt=0;
for(int i=0;i<n;i++){
bool ok = true;
for(int j=0;j<m;j++){
int x = vol[j][i];
if(st[j].count(x))st[j].erase(x);
else dfs(x,j);
ok&=st[j].empty();
}
cnt+=ok;
}
return cnt;
}
# | 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... |