Submission #742008

#TimeUsernameProblemLanguageResultExecution timeMemory
742008vjudge1Fireworks (APIO16_fireworks)C++17
0 / 100
25 ms47220 KiB
// #pragma GCC target( "sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") // #pragma GCC optimize("Ofast,unroll-loops,fast-math,O3") #include<bits/stdc++.h> #define f first #define s second #define pb push_back #define sz(x) (int)x.size() #define bit(a, i) ((a>>i)&1) using namespace std; typedef long long ll; typedef pair<int, int> pii; const int K = 800; const ll inf = 1e18; const int mod = 1e9 + 7; const int maxn = 1e6 + 100; int n, m; ll ans, OK; ll c[maxn]; vector<ll>e[maxn]; vector<pii>g[maxn]; void dfs(int v, int pr, ll timer){ bool ok = 0; for(pii to: g[v]){ if(to.f != pr){ ok = 1; dfs(to.f, v, timer+to.s); for(auto to1: e[to.f]) e[v].pb(to1); } } if(v > n) { e[v].pb(timer); c[v] = timer; } sort(e[v].begin(), e[v].end()); } void count(int x, ll y, int v, int pr){ bool ok = 0; for(pii to: g[v]){ int u = to.f; if(u == pr) continue; ok = 1; if(e[u][0]+y >= x){ ll nwy = y - min(e[u][0]+y-x, to.s*1ll); ans += min(e[u][0]+y-x, to.s*1ll); count(x, nwy, u, v); continue; } if(e[u].back()+y <= x){ ll nwy = x-e[u].back(); ans += x-(e[u].back()+y); count(x, nwy, u, v); continue; } count(x, y, u, v); } if(v > n && c[v]+y != x) OK = 0; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for(int i=2; i<=n+m; i++){ int v, w; cin >> v >> w; g[v].pb({i, w}); } dfs(1, 0, 0); ll sum = inf; for(int i=0; i<=500; i++){ OK = 1; ans = 0; count(i, 0, 1, 0); if(OK) { sum = min(sum, ans); } } cout << sum; }

Compilation message (stderr)

fireworks.cpp: In function 'void dfs(int, int, ll)':
fireworks.cpp:26:7: warning: variable 'ok' set but not used [-Wunused-but-set-variable]
   26 |  bool ok = 0;
      |       ^~
fireworks.cpp: In function 'void count(int, ll, int, int)':
fireworks.cpp:42:7: warning: variable 'ok' set but not used [-Wunused-but-set-variable]
   42 |  bool ok = 0;
      |       ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...