Submission #166381

#TimeUsernameProblemLanguageResultExecution timeMemory
166381abcdef6199Fireworks (APIO16_fireworks)C++98
0 / 100
9 ms376 KiB
#include <bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int, int> II; const int MAXN = 300 + 10; int n, m; vector<II> adj[MAXN]; int dp[MAXN][MAXN]; void dfs(int u) { if (adj[u].size() == 0) { for (int i = 1; i <= 300; ++i) { dp[u][i] = (int)1e9; } dp[u][0] = 0; return; } dp[u][0] = (int)1e9; for (int i = 0; i < (int)adj[u].size(); ++i) { int v = adj[u][i].first; int w = adj[u][i].second; dfs(v); for (int x = 1; x <= 300; ++x) { int t = (int)1e9; for (int y = 0; y <= 300; ++y) { int d = x - y; t = min(t, dp[v][y] + abs(d - w)); } dp[u][x] += t; } } } int main() { scanf("%d%d", &n, &m); n += m; for (int i = 2; i <= n; ++i) { int p, w; scanf("%d%d", &p, &w); adj[p].push_back(II(i, w)); } dfs(1); printf("%d\n", *min_element(dp[1] + 1, dp[1] + 1 + 300)); return 0; }

Compilation message (stderr)

fireworks.cpp: In function 'int main()':
fireworks.cpp:40:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &m);
     ~~~~~^~~~~~~~~~~~~~~~
fireworks.cpp:44:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d", &p, &w);
         ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...