Submission #832900

#TimeUsernameProblemLanguageResultExecution timeMemory
832900tolbiFireworks (APIO16_fireworks)C++17
0 / 100
2076 ms300 KiB
#include <bits/stdc++.h> #define int long long using namespace std; #define deci(x) int x;cin>>x; #define INF LONG_LONG_MAX const int MOD = 1e9+7; int32_t main(){ deci(n);deci(m); vector<vector<pair<int,int>>> tree(n+m); vector<vector<int>> arr(n+m); for (int i = 1; i < n+m; ++i) { int u = i+1; deci(v);deci(w); tree[u-1].push_back({v-1,w}); tree[v-1].push_back({u-1,w}); arr[u-1].push_back(v-1); arr[v-1].push_back(u-1); } int ans = 0; auto dfs = [&](int node, int lnode, int crr, auto dfs)->pair<int,int>{ if (node>=n){ return {crr,crr}; } vector<pair<int,int>> hueh; for (int i = 0; i < tree[node].size(); i++){ if (tree[node][i].first==lnode) continue; hueh.push_back(dfs(tree[node][i].first,node,tree[node][i].second+crr,dfs)); } sort(hueh.begin(), hueh.end()); int mir = INF; int mal = 0; for (int i = 0; i < hueh.size(); i++){ mir=min(mir,hueh[i].second); mal=max(mal,hueh[i].first); } if (mir<mal){ int miva = INF; int l = mir, r = mir; for (int i = mir; i <= mal; i++){ int crr = 0; for (int j = 0; j < hueh.size(); j++){ if (hueh[j].first>i) crr+=hueh[j].first-i; else if (hueh[j].second<i) crr+=i-hueh[j].second; } if (crr<miva){ miva=crr; l=i,r=i; } else if (crr==miva){ r=i; } } ans+=miva; return {l,r}; } else { return {mal,mir}; } }; dfs(0,-1,0,dfs); cout<<ans<<endl; }

Compilation message (stderr)

fireworks.cpp: In lambda function:
fireworks.cpp:33:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |   for (int i = 0; i < hueh.size(); i++){
      |                   ~~^~~~~~~~~~~~~
fireworks.cpp:42:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |     for (int j = 0; j < hueh.size(); j++){
      |                     ~~^~~~~~~~~~~~~
fireworks.cpp: In instantiation of 'main()::<lambda(long long int, long long int, long long int, auto:23)> [with auto:23 = main()::<lambda(long long int, long long int, long long int, auto:23)>]':
fireworks.cpp:61:17:   required from here
fireworks.cpp:26:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |   for (int i = 0; i < tree[node].size(); i++){
      |                   ~~^~~~~~~~~~~~~~~~~~~
fireworks.cpp:33:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |   for (int i = 0; i < hueh.size(); i++){
      |                   ~~^~~~~~~~~~~~~
fireworks.cpp:42:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |     for (int j = 0; j < hueh.size(); j++){
      |                     ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...