제출 #1200112

#제출 시각아이디문제언어결과실행 시간메모리
1200112prince9월 (APIO24_september)C++17
59 / 100
123 ms10688 KiB
#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+1<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 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...