답안 #898901

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
898901 2024-01-05T08:55:33 Z vjudge1 Magic Tree (CEOI19_magictree) C++17
6 / 100
46 ms 15744 KB
#include <bits/stdc++.h>
#define pb push_back
#define f first
#define s second
#define dbg(x) cout << "reached here " << x << endl;
#define ll long long 

using namespace std;
typedef pair<int, int> pii;

const int maxn = 1e5+5;
int a[maxn];
vector<int> adj[maxn];
map<int, int> sack[maxn];

void merge(int v, int u)
{
    for (auto e: sack[u])
        sack[v][e.f] += e.s;
}

void dfs(int v)
{
    int ptr = v;
    for(auto u: adj[v])
    {
        dfs(u);
        
        if(sack[u].size() > sack[v].size())
        {
            sack[v].swap(sack[u]);
            ptr = u;
        }
    }

    for (auto u: adj[v])
        merge(v, u);       

    if(a[v])
    {
        int h = 0;
        auto it = sack[v].rbegin();
        if(sack[v].size() > 1)
        {
            if((*it).f > a[v])
                h += (*it).s;
            it--;
            if((*it).f > a[v])
                h += (*it).s;
        }
        else if(sack[v].size() == 1)
            if((*it).f > a[v])
                h += (*it).s;

        if(h <= 1)
        {
            sack[v][a[v]]++;
            auto it2 = sack[v].rbegin();
            while((*it2).f > a[v] and it2 != sack[v].rend())
            {
                auto del = sack[v].find((*it2).f);
                sack[v].erase(del);
                it2--;
            }        
        }
    }
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int n, m, k;
    cin >> n >> m >> k;

    for (int i = 2; i <= n; ++i)
    {
        int p;
        cin >> p;
        adj[p].pb(i);
    }

    for (int i = 1; i <= m; ++i)
    {
        int v, d, w;
        cin >> v >> d >> w;
        a[v] = d;
    }

    dfs(1);

    int ans = 0;
    for (auto u: sack[1])
        ans += u.s;
    cout << ans << endl;

    return 0;
}

Compilation message

magictree.cpp: In function 'void dfs(int)':
magictree.cpp:24:9: warning: variable 'ptr' set but not used [-Wunused-but-set-variable]
   24 |     int ptr = v;
      |         ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 7260 KB Output is correct
2 Correct 2 ms 7468 KB Output is correct
3 Correct 3 ms 7516 KB Output is correct
4 Correct 3 ms 7260 KB Output is correct
5 Correct 2 ms 7260 KB Output is correct
6 Correct 2 ms 7260 KB Output is correct
7 Correct 2 ms 7260 KB Output is correct
8 Correct 2 ms 7260 KB Output is correct
9 Correct 2 ms 7256 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 38 ms 14996 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 7516 KB Output is correct
2 Incorrect 2 ms 7516 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 37 ms 11984 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 7260 KB Output is correct
2 Correct 2 ms 7468 KB Output is correct
3 Correct 3 ms 7516 KB Output is correct
4 Correct 3 ms 7260 KB Output is correct
5 Correct 2 ms 7260 KB Output is correct
6 Correct 2 ms 7260 KB Output is correct
7 Correct 2 ms 7260 KB Output is correct
8 Correct 2 ms 7260 KB Output is correct
9 Correct 2 ms 7256 KB Output is correct
10 Incorrect 46 ms 15744 KB Output isn't correct
11 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 8024 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 7260 KB Output is correct
2 Correct 2 ms 7468 KB Output is correct
3 Correct 3 ms 7516 KB Output is correct
4 Correct 3 ms 7260 KB Output is correct
5 Correct 2 ms 7260 KB Output is correct
6 Correct 2 ms 7260 KB Output is correct
7 Correct 2 ms 7260 KB Output is correct
8 Correct 2 ms 7260 KB Output is correct
9 Correct 2 ms 7256 KB Output is correct
10 Correct 2 ms 7516 KB Output is correct
11 Incorrect 2 ms 7516 KB Output isn't correct
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 7260 KB Output is correct
2 Correct 2 ms 7468 KB Output is correct
3 Correct 3 ms 7516 KB Output is correct
4 Correct 3 ms 7260 KB Output is correct
5 Correct 2 ms 7260 KB Output is correct
6 Correct 2 ms 7260 KB Output is correct
7 Correct 2 ms 7260 KB Output is correct
8 Correct 2 ms 7260 KB Output is correct
9 Correct 2 ms 7256 KB Output is correct
10 Incorrect 38 ms 14996 KB Output isn't correct
11 Halted 0 ms 0 KB -