Submission #1200170

#TimeUsernameProblemLanguageResultExecution timeMemory
1200170princeSeptember (APIO24_september)C++17
45 / 100
105 ms7516 KiB
#include "bits/stdc++.h"
#include "september.h"
using namespace std;

vector<vector<int>>g;
vector<bool>vis;
set<int>st;

void dfs(int u){
    vis[u]=true;
    for(int v:g[u]){
        if(!vis[v])st.insert(v),dfs(v);
    }
}

int solve(int n,int m,vector<int>a,vector<vector<int>>vol){
    g.assign(n,{});
    for(int i=0;i<n;i++){
        if(a[i]>=0)g[a[i]].push_back(i);
    }
    int mn = 0;
    for(int j=0;j<m;j++){
        st.clear();
        vis.assign(n,false);
        int cnt=0;
        for(int i=0;i+1<n;i++){
            int x = vol[j][i];
            if(st.count(x))st.erase(x);
            else dfs(x);
            if(st.empty())cnt++;
        }
        mn=max(mn,cnt);
    }
    return mn;
}
#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...