Language: C++

#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(ll i=0;i<n;i++)
#define repl(i,l,r) for(ll i=(l);i<(r);i++)
#define per(i,n) for(ll i=n-1;i>=0;i--)
#define perl(i,r,l) for(ll i=r-1;i>=l;i--)
#define fi first
#define se second
#define pb push_back
#define ins insert
#define all(x) (x).begin(),(x).end()
using ll=long long;
using vl=vector<ll>;
using vvl=vector<vector<ll>>;
const ll MOD=1000000007;
const ll MOD9=998244353;
const int inf=1e9+10;
const ll INF=4e18;
const ll dy[8]={1,0,-1,0,1,1,-1,-1};
const ll dx[8]={0,-1,0,1,1,-1,1,-1};
using Graph = vector<vector<int>>;
double nCk(int n, int k) {
double res=1.0;
for(int i=0; i<n; i++){
res*=0.5;}
for(int i=0; i<k; i++){
res*=(double)(n-i);
res/=(double)(k-i);
}
return res;}
struct edge{ll to, cost;};
typedef pair<ll,ll> P;
struct graph{
  ll V;
  vector<vector<edge> > G;
  vector<ll> d;

  graph(ll n){
    init(n);
  }

  void init(ll n){
    V = n;
    G.resize(V);
    d.resize(V);
    rep(i,V){
      d[i] = INF;
    }
  }

  void add_edge(ll s, ll t, ll cost){
    edge e;
    e.to = t, e.cost = cost;
    G[s].push_back(e);
  }

  void dijkstra(ll s){
    rep(i,V){
      d[i] = INF;
    }
    d[s] = 0;
    priority_queue<P,vector<P>, greater<P> > que;
    que.push(P(0,s));
    while(!que.empty()){
      P p = que.top(); que.pop();
      ll v = p.second;
      if(d[v]<p.first) continue;
      for(auto e : G[v]){
        if(d[e.to]>d[v]+e.cost){
          d[e.to] = d[v]+e.cost;
          que.push(P(d[e.to],e.to));
        }
      }
    }
  }
};
int main(){
ll n,m,r;
cin>>n>>m>>r;
ll c[r]={};
rep(i,n){
  cin>>c[r];
  c[i]--;}
  sort(c,c+r);
  vvl dist(n, vl(n,INF));
  for(ll i=0; i<m; i++){
    ll a,b,c; cin>>a>>b>>c;
    dist[a-1][b-1]=c;
    dist[b-1][a-1]=c;}
  
  for (ll k = 0; k < n; k++){       // 経由する頂点
    for (ll i = 0; i < n; i++) {    // 始点
      for (ll j = 0; j < n; j++) {  // 終点
        d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
      }
    }
  }
  ll ca = 1;
  for(ll i=1; i<=r; i++){
    ca*=i;}
  ll ans = INF;
  ll cb = 0;
  for(ll i=0; i<ca; i++){
    next_permutation( begin( c ), end( c ) );
    cb = 0;
    for(ll j=0; j<r-1; j++){
      cb += dist[j][j+1];}
    ans = min(ans,cb);
  }
  cout << ans << endl;}
  
    
  
  
    

Compiler output:
a.cc: In function 'int main()':
a.cc:94:9: error: 'd' was not declared in this scope
   94 |         d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
      |         ^
a.cc:104:28: error: no matching function for call to 'begin(ll [r])'
  104 |     next_permutation( begin( c ), end( c ) );
      |                       ~~~~~^~~~~
In file included from /usr/include/c++/14/bits/algorithmfwd.h:39,
                 from /usr/include/c++/14/bits/stl_algo.h:59,
                 from /usr/include/c++/14/algorithm:61,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:51,
                 from a.cc:1:
/usr/include/c++/14/initializer_list:88:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::begin(initializer_list<_Tp>)'
   88 |     begin(initializer_list<_Tp> __ils) noexcept
      |     ^~~~~
/usr/include/c++/14/initializer_list:88:5: note:   template argument deduction/substitution failed:
a.cc:104:28: note:   mismatched types 'std::initializer_list<_Tp>' and 'll*' {aka 'long long int*'}
  104 |     next_permutation( begin( c ), end( c ) );
      |                       ~~~~~^~~~~
In file included from /usr/include/c++/14/string:53,
                 from /usr/include/c++/14/bitset:52,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:52:
/usr/include/c++/14/bits/range_access.h:52:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(_Container&)'
   52 |     begin(_Container& __cont) -> decltype(__cont.begin())
      |     ^~~~~
/usr/include/c++/14/bits/range_access.h:52:5: note:   template argument deduction/substitution failed:
a.cc:104:28: note:   variable-sized array type 'll [r]' {aka 'long long int [r]'} is not a valid template argument
  104 |     next_permutation( begin( c ), end( c ) );
      |                       ~~~~~^~~~~
/usr/include/c++/14/bits/range_access.h:63:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(const _Container&)'
   63 |     begin(const _Container& __cont) -> decltype(__cont.begin())
      |     ^~~~~
/usr/include/c++/14/bits/range_access.h:63:5: note:   template argument deduction/substitution failed:
a.cc:104:28: note:   variable-sized array type 'll [r]' {aka 'long long int [r]'} is not a valid template argument
  104 |     next_permutation( begin( c ), end( c ) );
      |                       ~~~~~^~~~~
/usr/include/c++/14/bits/range_access.h:95:5: note: candidate: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::begin(_Tp (&)[_Nm])'
   95 |     begin(_Tp (&__arr)[_Nm]) noexcept
      |     ^~~~~
/usr/include/c++/14/bits/range_access.h:95:5: note:   template argument deduction/substitution failed:
a.cc:104:28: note:   variable-sized array type 'long int' is not a valid template argument
  104 |     next_permutation( begin( c ), end( c ) );
      |                       ~~~~~^~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:166:
/usr/include/c++/14/valarray:1227:5: note: candidate: 'template<class _Tp> _Tp* std::begin(valarray<_Tp>&)'
 1227 |     begin(valarray<_Tp>& __va) noexcept
      |     ^~~~~
/usr/include/c++/14/valarray:1227:5: note:   template argument deduction/substitution failed:
a.cc:104:28: note:   mismatched types 'std::valarray<_Tp>' and 'll [r]' {aka 'long long int [r]'}
  104 |     next_permutation( begin( c ), end( c ) );
      |                       ~~~~~^~~~~
/usr/include/c++/14/valarray:1238:5: note: candidate: 'template<class _Tp> const _Tp* std::begin(const valarray<_Tp>&)'
 1238 |     begin(const valarray<_Tp>& __va) noexcept
      |     ^~~~~
/usr/include/c++/14/valarray:1238:5: note:   template argument deduction/substitution failed:
a.cc:104:28: note:   mismatched types 'const std::valarray<_Tp>' and 'll [r]' {aka 'long long int [r]'}
  104 |     next_permutation( begin( c ), end( c ) );
      |                       ~~~~~^~~~~
a.cc:104:38: error: no matching function for call to 'end(ll [r])'
  104 |     next_permutation( begin( c ), end( c ) );
      |                                   ~~~^~~~~
/usr/include/c++/14/initializer_list:99:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::end(initializer_list<_Tp>)'
   99 |     end(initializer_list<_Tp> __ils) noexcept
      |     ^~~
/usr/include/c++/14/initializer_list:99:5: note:   template argument deduction/substitution failed:
a.cc:104:38: note:   mismatched types 'std::initializer_list<_Tp>' and 'll*' {aka 'long long int*'}
  104 |     next_permutation( begin( c ), end( c ) );
      |                                   ~~~^~~~~
/usr/include/c++/14/bits/range_access.h:74:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.end()) std::end(_Container&)'
   74 |     end(_Container& __cont) -> decltype(__cont.end())
      |     ^~~
/usr/include/c++/14/bits/range_access.h:74:5: note:   template argument deduction/substitution failed:
a.cc:104:38: note:   variable-sized array type 'll [r]' {aka 'long long int [r]'} is not a valid template argument
  104 |     next_permutation( begin( c ), end( c ) );
      |                                   ~~~^~~~~
/usr/include/c++/14/bits/range_access.h:85:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.end()) std::end(const _Container&)'
   85 |     end(const _Container& __cont) -> decltype(__cont.end())
      |     ^~~
/usr/include/c++/14/bits/range_access.h:85:5: note:   template argument deduction/substitution failed:
a.cc:104:38: note:   variable-sized array type 'll [r]' {aka 'long long int [r]'} is not a valid template argument
  104 |     next_permutation( begin( c ), end( c ) );
      |                                   ~~~^~~~~
/usr/include/c++/14/bits/range_access.h:106:5: note: candidate: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::end(_Tp (&)[_Nm])'
  106 |     end(_Tp (&__arr)[_Nm]) noexcept
      |     ^~~
/usr/include/c++/14/bits/range_access.h:106:5: note:   template argument deduction/substitution failed:
a.cc:104:38: note:   variable-sized array type 'long int' is not a valid template argument
  104 |     next_permutation( begin( c ), end( c ) );
      |                                   ~~~^~~~~
/usr/include/c++/14/valarray:1249:5: note: candidate: 'template<class _Tp> _Tp* std::end(valarray<_Tp>&)'
 1249 |     end(valarray<_Tp>& __va) noexcept
      |     ^~~
/usr/include/c++/14/valarray:1249:5: note:   template argument deduction/substitution failed:
a.cc:104:38: note:   mismatched types 'std::valarray<_Tp>' and 'll [r]' {aka 'long long int [r]'}
  104 |     next_permutation( begin( c ), end( c ) );
      |                                   ~~~^~~~~
/usr/include/c++/14/valarray:1265:5: note: candidate: 'template<class _Tp> const _Tp* std::end(const valarray<_Tp>&)'
 1265 |     end(const valarray<_Tp>& __va) noexcept
      |     ^~~
/usr/include/c++/14/valarray:1265:5: note:   template argument deduction/substitution failed:
a.cc:104:38: note:   mismatched types 'const std::valarray<_Tp>' and 'll [r]' {aka 'long long int [r]'}
  104 |     next_permutation( begin( c ), end( c ) );
      |                                   ~~~^~~~~