Submission #1150816

#TimeUsernameProblemLanguageResultExecution timeMemory
1150816ngano_upat_naSeptember (APIO24_september)C++20
0 / 100
0 ms324 KiB
#include "bits/stdc++.h"
#include "september.h"
using namespace std;
using ll = long long;

int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
    vector<int> cnt(N,0);
    vector<int> dist_to_leaf(N,-1);
    for (int x=0; x<N; x++) {
        int cnt = 0;
        dist_to_leaf[x] = max(dist_to_leaf[x],0);
        int node = x;
        while (true) {
            if (node == 0) {
                break;
            }
            else {
                dist_to_leaf[F[node]] = max(dist_to_leaf[node]+1,dist_to_leaf[F[node]]);
                node = F[node];
            }
        }
    }
    int idx = 0;
    for (int day=1; ; day++) {
        while (true) {
            for (int i=0; i<M; i++) {
                int node = S[i][idx];
                cnt[node]++;
                int cur_node = node;
                while (true) {
                    if (cur_node == 0) {
                        break;
                    }
                    if (dist_to_leaf[cur_node] == 0) {
                        dist_to_leaf[F[cur_node]]--;
                    }
                    cur_node = F[cur_node];
                }
            }
            bool ok = true;
            for (int i=0; i<N; i++) {
                if (cnt[i] == M && dist_to_leaf[i]!=0) {
                    ok = false;
                    break;
                }
            }
            if (ok) {
                idx++;
                break;
            }
            else {
                idx++;
            }
        }
        if (idx<=N-1) {
            return day;
        }
    }
}
#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...