제출 #711427

#제출 시각아이디문제언어결과실행 시간메모리
711427irmuun도로 폐쇄 (APIO21_roads)C++17
컴파일 에러
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,vector<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; }

컴파일 시 표준 에러 (stderr) 메시지

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){
      |                ^