Submission #1223440

#TimeUsernameProblemLanguageResultExecution timeMemory
1223440radaiosm7Road Closures (APIO21_roads)C++20
Compilation error
0 ms0 KiB
#include <cassert> #include <cstdio> #include <vector> #include <cassert> #include <cstdio> #include <vector> #include<bits/stdc++.h> using namespace std; int kalispera = -1; long long dp[100005][2]; //dp[v][0] = 0/1 -> connected with parent or not vector<pair<long long,long long>> adj[100005]; void dfs(long long v,long long p,long long k) { dp[v][0] = dp[v][1] = 0; vector<long long> diffs; for(auto e : adj[v]) { long long u = e.first; long long w = e.second; if(u != p) { dfs(u,v,k); dp[v][0] += dp[u][0] + w; dp[v][1] += dp[u][0] + w; diffs.push_back({dp[u][1] - w - dp[u][0]}); } } sort(diffs.begin(),diffs.end()); long long L = diffs.size(); for(long long j = 0 ; j < min(L,k) ; j++) { if(diffs[j] < 0) { dp[v][0] += diffs[j]; if(j != k-1) dp[v][1] += diffs[j]; } } } std::vector<long long> minimum_closure_costs(int N, std::vector<int> U, std::vector<int> V, std::vector<int> W) { ++kalispera; if (kalispera > 0) return -69420; for(long long i = 0 ; i < N ; i++) { U[i]++; V[i]++; adj[U[i]].push_back({V[i],W[i]}); adj[V[i]].push_back({U[i],W[i]}); } vector<long long> ret; int max_check = N-1; for(int i = 1 ; i <= N ; i++) { int L = adj[i].size(); max_check = max(max_check,L); } for(long long k = 0 ; k <= max_check ; k++) { dfs(1,1,k); ret.push_back(dp[1][0]); } // for(int k = max_check+1 ; k < N ; k++) // ret.push_back(0); return ret; }

Compilation message (stderr)

roads.cpp: In function 'std::vector<long long int> minimum_closure_costs(int, std::vector<int>, std::vector<int>, std::vector<int>)':
roads.cpp:54:32: error: could not convert '-69420' from 'int' to 'std::vector<long long int>'
   54 |     if (kalispera > 0) return -69420;
      |                                ^~~~~
      |                                |
      |                                int