# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
45846 | 2018-04-16T09:18:44 Z | OneSubmissionMan | Fireworks (APIO16_fireworks) | C++11 | 96 ms | 30204 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 = 4e18; 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; ll dp[N][N]; ll mn[N]; int c[Sz]; 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]); 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
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 24 ms | 26488 KB | Output is correct |
2 | Correct | 23 ms | 26488 KB | Output is correct |
3 | Correct | 24 ms | 26908 KB | Output is correct |
4 | Correct | 24 ms | 26992 KB | Output is correct |
5 | Correct | 24 ms | 26992 KB | Output is correct |
6 | Correct | 24 ms | 27060 KB | Output is correct |
7 | Correct | 25 ms | 27140 KB | Output is correct |
8 | Correct | 25 ms | 27140 KB | Output is correct |
9 | Correct | 24 ms | 27140 KB | Output is correct |
10 | Correct | 24 ms | 27140 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 29 ms | 27140 KB | Output is correct |
2 | Correct | 26 ms | 27140 KB | Output is correct |
3 | Correct | 25 ms | 27140 KB | Output is correct |
4 | Correct | 24 ms | 27140 KB | Output is correct |
5 | Correct | 24 ms | 27236 KB | Output is correct |
6 | Correct | 30 ms | 27236 KB | Output is correct |
7 | Correct | 23 ms | 27292 KB | Output is correct |
8 | Correct | 33 ms | 27620 KB | Output is correct |
9 | Correct | 33 ms | 27620 KB | Output is correct |
10 | Correct | 25 ms | 27628 KB | Output is correct |
11 | Correct | 31 ms | 28012 KB | Output is correct |
12 | Correct | 27 ms | 28012 KB | Output is correct |
13 | Correct | 26 ms | 28028 KB | Output is correct |
14 | Correct | 42 ms | 28540 KB | Output is correct |
15 | Correct | 26 ms | 28540 KB | Output is correct |
16 | Correct | 26 ms | 28540 KB | Output is correct |
17 | Correct | 27 ms | 28540 KB | Output is correct |
18 | Correct | 27 ms | 28540 KB | Output is correct |
19 | Correct | 27 ms | 28540 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 24 ms | 26488 KB | Output is correct |
2 | Correct | 23 ms | 26488 KB | Output is correct |
3 | Correct | 24 ms | 26908 KB | Output is correct |
4 | Correct | 24 ms | 26992 KB | Output is correct |
5 | Correct | 24 ms | 26992 KB | Output is correct |
6 | Correct | 24 ms | 27060 KB | Output is correct |
7 | Correct | 25 ms | 27140 KB | Output is correct |
8 | Correct | 25 ms | 27140 KB | Output is correct |
9 | Correct | 24 ms | 27140 KB | Output is correct |
10 | Correct | 24 ms | 27140 KB | Output is correct |
11 | Correct | 29 ms | 27140 KB | Output is correct |
12 | Correct | 26 ms | 27140 KB | Output is correct |
13 | Correct | 25 ms | 27140 KB | Output is correct |
14 | Correct | 24 ms | 27140 KB | Output is correct |
15 | Correct | 24 ms | 27236 KB | Output is correct |
16 | Correct | 30 ms | 27236 KB | Output is correct |
17 | Correct | 23 ms | 27292 KB | Output is correct |
18 | Correct | 33 ms | 27620 KB | Output is correct |
19 | Correct | 33 ms | 27620 KB | Output is correct |
20 | Correct | 25 ms | 27628 KB | Output is correct |
21 | Correct | 31 ms | 28012 KB | Output is correct |
22 | Correct | 27 ms | 28012 KB | Output is correct |
23 | Correct | 26 ms | 28028 KB | Output is correct |
24 | Correct | 42 ms | 28540 KB | Output is correct |
25 | Correct | 26 ms | 28540 KB | Output is correct |
26 | Correct | 26 ms | 28540 KB | Output is correct |
27 | Correct | 27 ms | 28540 KB | Output is correct |
28 | Correct | 27 ms | 28540 KB | Output is correct |
29 | Correct | 27 ms | 28540 KB | Output is correct |
30 | Incorrect | 96 ms | 30204 KB | Output isn't correct |
31 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 24 ms | 26488 KB | Output is correct |
2 | Correct | 23 ms | 26488 KB | Output is correct |
3 | Correct | 24 ms | 26908 KB | Output is correct |
4 | Correct | 24 ms | 26992 KB | Output is correct |
5 | Correct | 24 ms | 26992 KB | Output is correct |
6 | Correct | 24 ms | 27060 KB | Output is correct |
7 | Correct | 25 ms | 27140 KB | Output is correct |
8 | Correct | 25 ms | 27140 KB | Output is correct |
9 | Correct | 24 ms | 27140 KB | Output is correct |
10 | Correct | 24 ms | 27140 KB | Output is correct |
11 | Correct | 29 ms | 27140 KB | Output is correct |
12 | Correct | 26 ms | 27140 KB | Output is correct |
13 | Correct | 25 ms | 27140 KB | Output is correct |
14 | Correct | 24 ms | 27140 KB | Output is correct |
15 | Correct | 24 ms | 27236 KB | Output is correct |
16 | Correct | 30 ms | 27236 KB | Output is correct |
17 | Correct | 23 ms | 27292 KB | Output is correct |
18 | Correct | 33 ms | 27620 KB | Output is correct |
19 | Correct | 33 ms | 27620 KB | Output is correct |
20 | Correct | 25 ms | 27628 KB | Output is correct |
21 | Correct | 31 ms | 28012 KB | Output is correct |
22 | Correct | 27 ms | 28012 KB | Output is correct |
23 | Correct | 26 ms | 28028 KB | Output is correct |
24 | Correct | 42 ms | 28540 KB | Output is correct |
25 | Correct | 26 ms | 28540 KB | Output is correct |
26 | Correct | 26 ms | 28540 KB | Output is correct |
27 | Correct | 27 ms | 28540 KB | Output is correct |
28 | Correct | 27 ms | 28540 KB | Output is correct |
29 | Correct | 27 ms | 28540 KB | Output is correct |
30 | Incorrect | 96 ms | 30204 KB | Output isn't correct |
31 | Halted | 0 ms | 0 KB | - |