답안 #1058022

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1058022 2024-08-14T08:00:48 Z Ignut 참나무 (IOI23_beechtree) C++17
5 / 100
42 ms 14452 KB
/* Ignut
started: 14.08.2024
now: 14.08.2024
████████████████████████████████████████████████████████████████████
████████████████████████████████    ████████████████████████████████
██████████████████████████████        ██████████████████████████████
██████      ██████████████████        ██████████████████      ██████
██████          ██████████████        ██████████████          ██████
██████      ██    ████████████        ████████████    ██      ██████
██████      ████    ██████████        ██████████    ████      ██████
██████      ████      ██████████    ██████████      ████      ██████
██████      ████      ██████████    ██████████    ██████      ██████
██████      ██████    ██████████    ██████████    ██████      ██████
██████      ██████    ████████        ████████    ██████      ██████
██████      ██████      ██████        ██████      ██████      ██████
██████      ████        ████            ████        ████      ██████
██████            ██████████    ████    ██████████            ██████
██████      ██      ██████    ████████    ██████      ██      ██████
██████      ██████            ████████            ██████      ██████
██████                    ██            ██                    ██████
██████████████████████      ████    ████      ██████████████████████
████████████████████████      ██    ██      ████████████████████████
██████████████████████████                ██████████████████████████
██████████████████████████████        ██████████████████████████████
████████████████████████████████████████████████████████████████████
*/
 
#include <bits/stdc++.h>
 
using namespace std;
using ll = long long;

const int MAXN = 2e5 + 123;
int n;

vector<int> tree[MAXN];
vector<int> p;
vector<int> c;

vector<int> res;

int cnt[MAXN] = {};

bool Check(vector<int> &lst, int root) {
    // if (root == 4) {
    //     cout << root << " :\n";
    // }
    sort(lst.begin(), lst.end());
    do {
        bool ok = true;
        for (int v : lst) {
            int par = cnt[c[v]];
            int vert = (par == 0 ? root : lst[par - 1]);
            // if (root == 4) {
            //     cout << v << " -> " << par << ", ";
            // }
            if (p[v] != vert) {
                ok = false; break;
            }
            cnt[c[v]] ++;
        }
        // if (root == 4) {
        //     cout << '\n';
        // }
        for (int v : lst) cnt[c[v]] = 0;
        if (ok) return true;
    } while (next_permutation(lst.begin(), lst.end()));
    return false;
}

vector<int> dfs(int v) {
    vector<int> lst = {};
    for (int to : tree[v])
        if (to != p[v])
            for (int u : dfs(to))
                lst.push_back(u);
    res[v] |= Check(lst, v);
    lst.push_back(v);
    return lst;
}

vector<int> beechtree(int N, int M, vector<int> P, vector<int> C) {
    n = N; p = P; c = C;
    res.assign(N, 0);
    int cntEq = 1;
    for (int i = n - 2; i >= 0; i --) {
        if (C[i] != C[i + 1]) break;
        cntEq ++;
    }
    cntEq = min(cntEq + 1, N);
    for (int i = N - 1; i >= N - cntEq; i --) res[i] = 1;
    // for (int i = 1; i < N; i ++) {
    //     tree[i].push_back(P[i]);
    //     tree[P[i]].push_back(i);
    // }
    // dfs(0);
    return res;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 5748 KB 2nd lines differ - on the 2nd token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 5724 KB Output is correct
2 Correct 1 ms 5724 KB Output is correct
3 Correct 1 ms 5748 KB Output is correct
4 Correct 1 ms 5724 KB Output is correct
5 Correct 1 ms 5724 KB Output is correct
6 Correct 2 ms 5724 KB Output is correct
7 Incorrect 1 ms 5724 KB 2nd lines differ - on the 1st token, expected: '0', found: '1'
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 5724 KB Output is correct
2 Correct 1 ms 5724 KB Output is correct
3 Correct 1 ms 5748 KB Output is correct
4 Correct 1 ms 5724 KB Output is correct
5 Correct 1 ms 5724 KB Output is correct
6 Correct 2 ms 5724 KB Output is correct
7 Correct 42 ms 14348 KB Output is correct
8 Correct 37 ms 14344 KB Output is correct
9 Correct 2 ms 5720 KB Output is correct
10 Correct 1 ms 5724 KB Output is correct
11 Correct 2 ms 5720 KB Output is correct
12 Correct 1 ms 5716 KB Output is correct
13 Correct 1 ms 5760 KB Output is correct
14 Correct 2 ms 5724 KB Output is correct
15 Correct 1 ms 6016 KB Output is correct
16 Correct 2 ms 5828 KB Output is correct
17 Correct 33 ms 14240 KB Output is correct
18 Correct 35 ms 14200 KB Output is correct
19 Correct 37 ms 14452 KB Output is correct
20 Correct 38 ms 14332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 5724 KB 2nd lines differ - on the 2nd token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 5724 KB Output is correct
2 Correct 1 ms 5724 KB Output is correct
3 Incorrect 1 ms 5724 KB 2nd lines differ - on the 1st token, expected: '0', found: '1'
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 5748 KB 2nd lines differ - on the 2nd token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 5724 KB Output is correct
2 Correct 1 ms 5724 KB Output is correct
3 Incorrect 1 ms 5724 KB 2nd lines differ - on the 1st token, expected: '0', found: '1'
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 5748 KB 2nd lines differ - on the 2nd token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 5724 KB Output is correct
2 Correct 1 ms 5724 KB Output is correct
3 Incorrect 1 ms 5724 KB 2nd lines differ - on the 1st token, expected: '0', found: '1'
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 5748 KB 2nd lines differ - on the 2nd token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -