Submission #533349

#TimeUsernameProblemLanguageResultExecution timeMemory
533349DanerZeinRoad Closures (APIO21_roads)C++14
24 / 100
2065 ms20420 KiB
#include "roads.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,ll> ii; typedef vector<ii> vi; typedef pair<ii,ll> iii; const ll MAX=1e16; const int MAX_N=2e3+10; bool vis[MAX_N]; vector<vi> G; int n,ti; bool orden(ii a,ii b){ return -a.first+a.second<-b.first+b.second; } ll dp[MAX_N][3]; ll knap(int u,int p,bool k){ if(dp[u][k]!=-1) return dp[u][k]; vector<ii> op; vector<iii> aux; ll s=0; for(auto &v:G[u]){ if(v.first!=p){ if(ti>=1){ if(k || (!k && ti>=2)){ op.push_back(ii(knap(v.first,u,1)+v.second,knap(v.first,u,0))); int t=op.size()-1; aux.push_back(iii(op[t],v.first)); } } s+=knap(v.first,u,1)+v.second; } } sort(op.begin(),op.end(),orden); int c=ti; if(!k) c--; for(int i=0;i<op.size();i++){ if(i<c && -op[i].first+op[i].second<=0) s+=(-op[i].first+op[i].second); } return dp[u][k]=s; } std::vector<long long> minimum_closure_costs(int N, std::vector<int> U, std::vector<int> V, std::vector<int> W) { n=N; vector<ll> res; //vector<iii> ed; G.resize(n+1); for(int i=0;i<n-1;i++){ int a=U[i],b=V[i],w=W[i]; G[a].push_back(ii(b,w)); G[b].push_back(ii(a,w)); //ed.push_back(iii(ii(a,b),w)); } for(int i=0;i<n;i++){ ti=i; memset(dp,-1,sizeof dp); res.push_back(knap(0,0,1)); } return res; }

Compilation message (stderr)

roads.cpp: In function 'll knap(int, int, bool)':
roads.cpp:37:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |   for(int i=0;i<op.size();i++){
      |               ~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...