Submission #711426

#TimeUsernameProblemLanguageResultExecution timeMemory
711426irmuunRoad Closures (APIO21_roads)C++17
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
#include "roads.h"
using namespace std;
#define pb push_back
#define ll long long
#define ff first
#define ss second
#define PI 3.1415926535897932384626433
#define all(s) s.begin(),s.end() 
 
const ll mod=1000000007,mod1=998244353,INF=1e18,MAX=1e9;
 
vector<ll> minimum_closure_costs(int n,ector<int>U,vector<int>V,vector<int>W){
    int cnt=0;
    bool ok=true;
    for(ll i=0;i<n-1;i++){
        if(U[i]==0){
            cnt++;
        }
        if(U[i]!=i||V[i]!=i+1){
            ok=false;
        }
    }
    if(cnt==n-1){
        sort(all(W));
        ll cur=0;
        for(ll i=0;i<n;i++){
            cur+=W[i];
        }
        vector<ll>ans;
        for(ll i=n-1;i>=0;i--){
            cur-=W[i];
            ans.pb(cur);
        }
        return ans;
    }
    if(ok==true){
        vector<ll>ans(n,0);
        ll cur=0;
        for(int i=0;i<n-1;i++){
            cur+=W[i];
        }
        ans[0]=cur;
        ll dp[n+5];
        dp[0]=0;
        dp[1]=W[0];
        for(int i=2;i<n;i++){
            dp[i]=min(dp[i-1],dp[i-2])+W[i-1];
        }
        ans[1]=min(dp[n-1],dp[n-2]);
        return ans;
    }
    ll dp[n+5][2];
    vector<pair<ll,ll>>dv[n+5];
    for(ll i=0;i<n-1;i++){
        dv[U[i]].pb({V[i],W[i]});
        dv[V[i]].pb({U[i],W[i]});
    }
    ll curK;
    function <void(ll,ll)> dfs=[&](ll u,ll p){
        vector<ll>vec;
        dp[u][0]=0;
        dp[u][1]=0;
        for(auto [x,y]:dv[u]){
            if(x!=p){
                dfs(x,u);
                dp[x][0]+=y;
                vec.pb(x);
            }
        }
        sort(all(vec),[&](ll a,ll b){
            return dp[a][1]-dp[a][0]<dp[b][1]-dp[b][0];
        });
        dp[u][0]=0;
        dp[u][1]=0;
        for(ll x=0;auto ver:vec){
            if(i<curK){
                dp[ver][0]+=min(dp[ver][0],dp[ver][1]);
            }
            else{
                dp[ver][0]+=dp[ver][0];
            }
            if(i<curK-1){
                dp[u][1]+=min(dp[ver][0],dp[ver][1]);
            }
            else{
                dp[u][1]+=dp[ver][0];
            }
        }
    };
    vector<ll>ans(n,0);
    for(ll k=0;k<n;k++){
        curK=k;
        dfs(0,-1);
        ans.pb(min(dp[0][0],dp[0][1]));
    }
    return ans;
}

Compilation message (stderr)

roads.cpp:13:40: error: 'ector' has not been declared
   13 | vector<ll> minimum_closure_costs(int n,ector<int>U,vector<int>V,vector<int>W){
      |                                        ^~~~~
roads.cpp:13:45: error: expected ',' or '...' before '<' token
   13 | vector<ll> minimum_closure_costs(int n,ector<int>U,vector<int>V,vector<int>W){
      |                                             ^
roads.cpp: In function 'std::vector<long long int> minimum_closure_costs(int, int)':
roads.cpp:17:12: error: 'U' was not declared in this scope
   17 |         if(U[i]==0){
      |            ^
roads.cpp:20:12: error: 'U' was not declared in this scope
   20 |         if(U[i]!=i||V[i]!=i+1){
      |            ^
roads.cpp:20:21: error: 'V' was not declared in this scope
   20 |         if(U[i]!=i||V[i]!=i+1){
      |                     ^
roads.cpp:25:18: error: 'W' was not declared in this scope
   25 |         sort(all(W));
      |                  ^
roads.cpp:9:16: note: in definition of macro 'all'
    9 | #define all(s) s.begin(),s.end()
      |                ^
roads.cpp:41:18: error: 'W' was not declared in this scope
   41 |             cur+=W[i];
      |                  ^
roads.cpp:46:15: error: 'W' was not declared in this scope
   46 |         dp[1]=W[0];
      |               ^
roads.cpp:56:12: error: 'U' was not declared in this scope
   56 |         dv[U[i]].pb({V[i],W[i]});
      |            ^
roads.cpp:56:22: error: 'V' was not declared in this scope
   56 |         dv[U[i]].pb({V[i],W[i]});
      |                      ^
roads.cpp:56:27: error: 'W' was not declared in this scope
   56 |         dv[U[i]].pb({V[i],W[i]});
      |                           ^
roads.cpp: In lambda function:
roads.cpp:76:20: warning: range-based 'for' loops with initializer only available with '-std=c++2a' or '-std=gnu++2a'
   76 |         for(ll x=0;auto ver:vec){
      |                    ^~~~
roads.cpp:77:16: error: 'i' was not declared in this scope
   77 |             if(i<curK){
      |                ^
roads.cpp:83:16: error: 'i' was not declared in this scope
   83 |             if(i<curK-1){
      |                ^
roads.cpp:76:16: warning: unused variable 'x' [-Wunused-variable]
   76 |         for(ll x=0;auto ver:vec){
      |                ^