Submission #1366423

#TimeUsernameProblemLanguageResultExecution timeMemory
1366423rahidilbayramliSeptember (APIO24_september)C++20
0 / 100
1 ms580 KiB
#include "september.h"
#include<bits/stdc++.h>
#define ll long long
#define ld long double
#define vl vector<ll>
#define vi vector<int>
#define pb push_back
#define sz(v) (ll)(v.size())
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define f first
#define s second
#define pii pair<int, int>
#define pll pair<ll, ll>
using namespace std;
const int sz = 1e5+5;
vi g[sz];
int vis[sz], ord[sz];
vector<pii>vect;
void dfs(int node)
{
    vis[node] = 1;
    for(auto u : g[node])
    {
        if(vis[u])
            continue;
        if(ord[node] < ord[u])
            vect.pb({ord[u], ord[node]});
        ord[u] = min(ord[u], ord[node]);
        dfs(u);
    }
}
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
    for(int i = 1; i < N; i++)
    {
        g[i].pb(F[i]);
        g[F[i]].pb(i);
    }
    int res = N - 1;
    for(int i = 0; i < M; i++)
    {
        for(int j = 0; j < N - 1; j++)
            ord[S[i][j]] = j;
        ord[0] = N + 5;
        dfs(0);
        int cnt = 0;
        set<int>st[N];
        for(auto u : vect)
        {
            st[u.f].insert(-1);
            st[u.s].insert(1);
        }
        int f = 0;
        for(int j = 1; j < N; j++)
        {
            vis[j] = 0;
            for(auto u : st[j])
                f += u;
            if(!f)
                cnt++;
        }
        vect.clear();
        res = min(res, cnt);
    }
    for(int i = 0; i < N; i++)
    {
        g[i].clear();
        vis[i] = 0;
        ord[i] = 0;
    }
    vect.clear();
    return res;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...