# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
45860 | 2018-04-16T09:31:05 Z | OneSubmissionMan | Fireworks (APIO16_fireworks) | C++11 | 345 ms | 32068 KB |
# include <bits/stdc++.h> # define x first # define y second # define mp make_pair // everything go according to my plan # define pb push_back # define sz(a) (int)(a.size()) # define vec vector // shimkenttin kyzdary, dzyn, dzyn, dzyn... # define y1 Y_U_NO_y1 # define left Y_U_NO_left # define right Y_U_NO_right using namespace std; typedef pair <int, int> pii; typedef long long ll; typedef long double ld; const int Mod = (int)1e9 + 7; const int MX = 1073741822; const ll MXLL = 1e5 * 1e9 + 1; const int Sz = 1110111; // a pinch of soul inline void Read_rap () { ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0); } inline void randomizer3000 () { unsigned int seed; asm ("rdtsc" : "=A"(seed)); srand (seed); } void files (string problem) { if (fopen ((problem + ".in").c_str(),"r")) { freopen ((problem + ".in").c_str(),"r",stdin); freopen ((problem + ".out").c_str(),"w",stdout); } } void localInput(const char in[] = "s") { if (fopen (in, "r")) { freopen (in, "r", stdin); } else cerr << "Warning: Input file not found" << endl; } int n, m; vec<int> g[Sz]; const int N = 5e3 + 1; int c[Sz]; ll dp[N][N]; ll mn[N]; ll dist[Sz]; vec<ll> W; void pre_dfs (int v) { for (int to : g[v]) { dist[to] = dist[v] + c[to]; pre_dfs (to); } } void calc (int v) { for (int to : g[v]) calc (to); if (!sz(g[v])) { for (int i = 0; i < sz(W); i++) dp[v][i] = MXLL; dp[v][lower_bound (W.begin(), W.end(), dist[v]) - W.begin()] = 0; } for (int to : g[v]) { for (int i = 0; i < sz(W); i++) { dp[v][i] += dp[to][i]; dp[v][i] = min (dp[v][i], MXLL); } } for (int i = 0; i < sz(W); i++) { mn[i] = dp[v][i]; for (int j = 0; j < i; j++) mn[i] = min (mn[i], W[i] - W[j] + dp[v][j]); for (int j = i+1; j < sz(W); j++) { if (W[j] - W[i] > c[v]) break; mn[i] = min (mn[i], W[j] - W[i] + dp[v][j]); } } for (int i = 0; i < sz(W); i++) dp[v][i] = mn[i]; } int main() { # ifdef Local //localInput(); # endif Read_rap(); cin >> n >> m; for (int i = 2; i <= n + m; i++) { static int pr; cin >> pr >> c[i]; g[pr].pb (i); } pre_dfs (1); for (int i = 1; i <= n + m; i++) W.pb (dist[i]), W.pb (dist[i] + 1); sort (W.begin(), W.end()); W.resize (unique (W.begin(), W.end()) - W.begin()); calc (1); cout << *min_element (dp[1], dp[1] + sz(W)); return 0; } // Coded by Z..
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 27 ms | 26360 KB | Output is correct |
2 | Correct | 24 ms | 26468 KB | Output is correct |
3 | Correct | 36 ms | 27016 KB | Output is correct |
4 | Correct | 29 ms | 27224 KB | Output is correct |
5 | Correct | 28 ms | 27224 KB | Output is correct |
6 | Correct | 35 ms | 27224 KB | Output is correct |
7 | Correct | 30 ms | 27224 KB | Output is correct |
8 | Correct | 32 ms | 27224 KB | Output is correct |
9 | Correct | 25 ms | 27224 KB | Output is correct |
10 | Correct | 25 ms | 27224 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 25 ms | 27224 KB | Output is correct |
2 | Correct | 25 ms | 27224 KB | Output is correct |
3 | Correct | 25 ms | 27224 KB | Output is correct |
4 | Correct | 27 ms | 27224 KB | Output is correct |
5 | Correct | 34 ms | 27224 KB | Output is correct |
6 | Correct | 27 ms | 27224 KB | Output is correct |
7 | Correct | 27 ms | 27340 KB | Output is correct |
8 | Correct | 28 ms | 27468 KB | Output is correct |
9 | Correct | 30 ms | 27596 KB | Output is correct |
10 | Correct | 30 ms | 27648 KB | Output is correct |
11 | Correct | 29 ms | 27860 KB | Output is correct |
12 | Correct | 30 ms | 28116 KB | Output is correct |
13 | Correct | 30 ms | 28140 KB | Output is correct |
14 | Correct | 42 ms | 28544 KB | Output is correct |
15 | Correct | 33 ms | 28544 KB | Output is correct |
16 | Correct | 29 ms | 28544 KB | Output is correct |
17 | Correct | 38 ms | 28544 KB | Output is correct |
18 | Correct | 30 ms | 28544 KB | Output is correct |
19 | Correct | 33 ms | 28544 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 27 ms | 26360 KB | Output is correct |
2 | Correct | 24 ms | 26468 KB | Output is correct |
3 | Correct | 36 ms | 27016 KB | Output is correct |
4 | Correct | 29 ms | 27224 KB | Output is correct |
5 | Correct | 28 ms | 27224 KB | Output is correct |
6 | Correct | 35 ms | 27224 KB | Output is correct |
7 | Correct | 30 ms | 27224 KB | Output is correct |
8 | Correct | 32 ms | 27224 KB | Output is correct |
9 | Correct | 25 ms | 27224 KB | Output is correct |
10 | Correct | 25 ms | 27224 KB | Output is correct |
11 | Correct | 25 ms | 27224 KB | Output is correct |
12 | Correct | 25 ms | 27224 KB | Output is correct |
13 | Correct | 25 ms | 27224 KB | Output is correct |
14 | Correct | 27 ms | 27224 KB | Output is correct |
15 | Correct | 34 ms | 27224 KB | Output is correct |
16 | Correct | 27 ms | 27224 KB | Output is correct |
17 | Correct | 27 ms | 27340 KB | Output is correct |
18 | Correct | 28 ms | 27468 KB | Output is correct |
19 | Correct | 30 ms | 27596 KB | Output is correct |
20 | Correct | 30 ms | 27648 KB | Output is correct |
21 | Correct | 29 ms | 27860 KB | Output is correct |
22 | Correct | 30 ms | 28116 KB | Output is correct |
23 | Correct | 30 ms | 28140 KB | Output is correct |
24 | Correct | 42 ms | 28544 KB | Output is correct |
25 | Correct | 33 ms | 28544 KB | Output is correct |
26 | Correct | 29 ms | 28544 KB | Output is correct |
27 | Correct | 38 ms | 28544 KB | Output is correct |
28 | Correct | 30 ms | 28544 KB | Output is correct |
29 | Correct | 33 ms | 28544 KB | Output is correct |
30 | Incorrect | 345 ms | 32068 KB | Output isn't correct |
31 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 27 ms | 26360 KB | Output is correct |
2 | Correct | 24 ms | 26468 KB | Output is correct |
3 | Correct | 36 ms | 27016 KB | Output is correct |
4 | Correct | 29 ms | 27224 KB | Output is correct |
5 | Correct | 28 ms | 27224 KB | Output is correct |
6 | Correct | 35 ms | 27224 KB | Output is correct |
7 | Correct | 30 ms | 27224 KB | Output is correct |
8 | Correct | 32 ms | 27224 KB | Output is correct |
9 | Correct | 25 ms | 27224 KB | Output is correct |
10 | Correct | 25 ms | 27224 KB | Output is correct |
11 | Correct | 25 ms | 27224 KB | Output is correct |
12 | Correct | 25 ms | 27224 KB | Output is correct |
13 | Correct | 25 ms | 27224 KB | Output is correct |
14 | Correct | 27 ms | 27224 KB | Output is correct |
15 | Correct | 34 ms | 27224 KB | Output is correct |
16 | Correct | 27 ms | 27224 KB | Output is correct |
17 | Correct | 27 ms | 27340 KB | Output is correct |
18 | Correct | 28 ms | 27468 KB | Output is correct |
19 | Correct | 30 ms | 27596 KB | Output is correct |
20 | Correct | 30 ms | 27648 KB | Output is correct |
21 | Correct | 29 ms | 27860 KB | Output is correct |
22 | Correct | 30 ms | 28116 KB | Output is correct |
23 | Correct | 30 ms | 28140 KB | Output is correct |
24 | Correct | 42 ms | 28544 KB | Output is correct |
25 | Correct | 33 ms | 28544 KB | Output is correct |
26 | Correct | 29 ms | 28544 KB | Output is correct |
27 | Correct | 38 ms | 28544 KB | Output is correct |
28 | Correct | 30 ms | 28544 KB | Output is correct |
29 | Correct | 33 ms | 28544 KB | Output is correct |
30 | Incorrect | 345 ms | 32068 KB | Output isn't correct |
31 | Halted | 0 ms | 0 KB | - |