Submission #1087617

# Submission time Handle Problem Language Result Execution time Memory
1087617 2024-09-13T03:00:26 Z trMatherz Magic Tree (CEOI19_magictree) C++17
58 / 100
176 ms 39948 KB
#include <iostream> //cin, cout


// #include <fstream>
// std::ifstream cin ("paint.in");
// std::ofstream cout ("paint.out");





// includes
#include <cmath> 
#include <set>
#include <map>
#include <queue>
#include <string>
#include <vector>
#include <array>
#include <algorithm>
#include <numeric>
#include <iomanip>
#include <unordered_set>
#include <stack>
#include <ext/pb_ds/assoc_container.hpp>
#include <random>
#include <chrono>
#include <bitset>
#include <complex>


//usings 
using namespace std;
using namespace __gnu_pbds;


// misc
#define ll long long
#define ld long double
#define pb push_back
#define pq priority_queue
#define ub upper_bound
#define lb lower_bound
template<typename T, typename U> bool emin(T &a, const U &b){ return b < a ? a = b, true : false; }
template<typename T, typename U> bool emax(T &a, const U &b){ return b > a ? a = b, true : false; }
typedef uint64_t hash_t;

// vectors
#define vi vector<int>
#define vvi vector<vi>
#define vvvi vector<vvi>
#define vpii vector<pair<int, int>>
#define vvpii vector<vector<pair<int, int>>>
#define vppipi vector<pair<int, pair<int, int>>>
#define vl vector<ll>
#define vvl vector<vl>
#define vvvl vector<vvl>
#define vpll vector<pair<ll, ll>>
#define vvpll vector<vpll>
#define vb vector<bool>
#define vvb vector<vb>
#define vs vector<string>
#define sz(x) (int)x.size()
#define rz resize
#define all(x) x.begin(), x.end()
#define vc vector<char>
#define vvc vector<vc>


// pairs
#define pii pair<int, int>
#define pll pair<ll, ll>
#define mp make_pair
#define f first
#define s second

// sets
#define si set<int>
#define sl set<ll>
#define ss set<string>
#define in insert
template <class T> using iset = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

// maps
#define mii map<int, int>
#define mll map<ll, ll>

// loops
#define FR(x, z, y) for (int x = z; x < y; x++)
#define FRE(x, z, y) FR(x, z, y + 1)
#define F(x, y) FR(x, 0, y)
#define FE(x, y) F(x, y + 1)
#define A(x, y) for(auto &x : y)

int n, m, k; 
vvi a; vpll b;  
vector<multiset<pll>> dp; 
void plop(int x, int p) {
    A(u, a[x]) {
        if(u == p) continue; 
        plop(u, x); 
        if(sz(dp[u]) > sz(dp[x])) swap(dp[x], dp[u]); 
        A(l, dp[u]) dp[x].in(l); 
    }
    if(b[x].s == 0) return; 
    dp[x].in(b[x]); 
    ll ct = b[x].s; 
    auto it = dp[x].ub({b[x].f + 1, -1}); 
    while(it != dp[x].end()) { 
        if(it->s > ct) { dp[x].in({it->f, it->s - ct}); dp[x].erase(it++);  return; }
        else ct -= it->s, dp[x].erase(it++); 
        it++;
    }
}
int main(){
    cin >> n >> m >> k;
    a = vvi(n); dp = vector<multiset<pll>>(n); b = vpll(n, {0, 0}); 
    F(i, n - 1) { int x; cin >> x; a[x - 1].pb(i + 1); }
    F(i, m) { int x, y, z; cin >> x >> y >> z; b[--x] = {y, z}; }
    plop(0, 0); 
    ll an = 0;
    A(u, dp[0]) an += u.s; 
    cout << an; 
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 432 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 79 ms 19540 KB Output is correct
2 Correct 59 ms 19312 KB Output is correct
3 Correct 176 ms 39948 KB Output is correct
4 Correct 115 ms 22728 KB Output is correct
5 Correct 133 ms 24276 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 604 KB Output is correct
2 Correct 1 ms 600 KB Output is correct
3 Correct 1 ms 604 KB Output is correct
4 Correct 84 ms 23796 KB Output is correct
5 Correct 121 ms 29516 KB Output is correct
6 Correct 118 ms 23392 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 149 ms 36844 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 432 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 168 ms 32360 KB Output is correct
11 Correct 162 ms 33104 KB Output is correct
12 Correct 83 ms 19796 KB Output is correct
13 Correct 89 ms 21612 KB Output is correct
14 Correct 87 ms 23132 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 2652 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 432 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 604 KB Output is correct
11 Correct 1 ms 600 KB Output is correct
12 Correct 1 ms 604 KB Output is correct
13 Correct 84 ms 23796 KB Output is correct
14 Correct 121 ms 29516 KB Output is correct
15 Correct 118 ms 23392 KB Output is correct
16 Correct 168 ms 32360 KB Output is correct
17 Correct 162 ms 33104 KB Output is correct
18 Correct 83 ms 19796 KB Output is correct
19 Correct 89 ms 21612 KB Output is correct
20 Correct 87 ms 23132 KB Output is correct
21 Correct 22 ms 6332 KB Output is correct
22 Correct 92 ms 23380 KB Output is correct
23 Correct 91 ms 23120 KB Output is correct
24 Correct 145 ms 32340 KB Output is correct
25 Correct 110 ms 21956 KB Output is correct
26 Correct 115 ms 22348 KB Output is correct
27 Correct 106 ms 19864 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 432 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 79 ms 19540 KB Output is correct
11 Correct 59 ms 19312 KB Output is correct
12 Correct 176 ms 39948 KB Output is correct
13 Correct 115 ms 22728 KB Output is correct
14 Correct 133 ms 24276 KB Output is correct
15 Correct 1 ms 604 KB Output is correct
16 Correct 1 ms 600 KB Output is correct
17 Correct 1 ms 604 KB Output is correct
18 Correct 84 ms 23796 KB Output is correct
19 Correct 121 ms 29516 KB Output is correct
20 Correct 118 ms 23392 KB Output is correct
21 Incorrect 149 ms 36844 KB Output isn't correct
22 Halted 0 ms 0 KB -