Language: C++

#include <bits/stdc++.h>
#define REP(i,n) for (int i = 0; i < (n); i++)
#define RREP(i, s, n) for (int i = s; i < (n); i++)
#define ALL(a) a.begin(), a.end()
#define RALL(a) a.rbegin(), a.rend()
using namespace std;
using ll = long long;
typedef pair<int, int> pint;
typedef pair<ll, ll> pll;
const ll MOD = 1000000007;
const ll INF = MOD * MOD;
const int inf = (1<<29);

int n;
int x[10], y[10];

double dist(int i, int j) {
    double dx = x[i]-x[j];
    double dy = y[i]-y[j];
    return pow(dx*dx + dy*dy, 0,5);
}

void solve() {
    cin >> n;
    RREP(i, 1, n+1) cin >> x[i] >> y[i];
    double sum = 0.0;
    vector<int> v(n);
    REP(i, n) v[i] = i+1;
    do {
        REP(i, n-1) sum += dist(v[i], v[i+1]);
    } while(next_permutation(v.begin(), v.end()));
    int factorial = 1;
    RREP(i, 2, n+1) factorial *= 1;
    cout << fixed << setprecision(10) << sum / factorial << endl; 
    return;
}

int main() {
    solve();
    return 0;
}



// int main() {

//     int N;
//     cin >> N;
    
//     vector<pair<double, double>> pos(N);
//     for(int i = 0; i < N; i++) {
//         cin >> pos[i].first >> pos[i].second;
//     }

//     double sum = 0;
//     int tt  = 0;
//     for(int i = 0; i < N-1; i++) {
//         for(int j = i+1; j < N; j++) {
//             sum += pow((pow(abs(pos[i].first - pos[j].first), 2) + pow(abs(pos[i].second - pos[j].second), 2)), 0.5);
//             tt ++;
//         }
//     }

//     int tmp = 1;
//     for(int i = 1; i < N+1; i++) {
//         tmp *= i;
//     }

//     sum *= 2 * tmp / N;
//     double ave = 0;
//     ave = sum / tmp;

//     printf("%.10f", ave);
//     // cout << ave << endl;
    
 
//     return 0;
// }

Compiler output:
a.cc: In function 'double dist(int, int)':
a.cc:20:15: error: no matching function for call to 'pow(double, int, int)'
   20 |     return pow(dx*dx + dy*dy, 0,5);
      |            ~~~^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/valarray:605,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:166,
                 from a.cc:1:
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_Constant, std::_ValArray, _Tp, _Tp>, _Tp> std::pow(const typename valarray<_Tp>::value_type&, const valarray<_Tp>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_ValArray, std::_Constant, _Tp, _Tp>, _Tp> std::pow(const valarray<_Tp>&, const typename valarray<_Tp>::value_type&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_ValArray, std::_ValArray, _Tp, _Tp>, _Tp> std::pow(const valarray<_Tp>&, const valarray<_Tp>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename _Dom::value_type> std::pow(const typename _Dom::value_type&, const _Expr<_Dom1, typename _Dom1::value_type>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename _Dom::value_type> std::pow(const _Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename _Dom::value_type> std::pow(const valarray<typename _Dom::valarray>&, const _Expr<_Dom1, typename _Dom1::value_type>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename _Dom::value_type> std::pow(const _Expr<_Dom1, typename _Dom1::value_type>&, const valarray<typename _Dom::value_type>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename _Dom1::value_type> std::pow(const _Expr<_Dom1, typename _Dom1::value_type>&, const _Expr<_Dom2, typename _Dom2::value_type>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
In file included from /usr/include/c++/14/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:127:
/usr/include/c++/14/complex:2482:5: note: candidate: 'template<class _Tp, class _Up> std::complex<typename __gnu_cxx::__promote<decltype (((typename __gnu_cxx::__promote<_Tp, std::__is_integer<_Tp>::__value>::__type)(0) + (typename __gnu_cxx::__promote<_Up, std::__is_integer<_Up>::__value>::__type)(0)))>::__type> std::pow(const complex<_Tp>&, const complex<_Up>&)'
 2482 |     pow(const std::complex<_Tp>& __x, const std::complex<_Up>& __y)
      |     ^~~
/usr/include/c++/14/complex:2482:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:2474:5: note: candidate: 'template<class _Tp, class _Up> std::complex<typename __gnu_cxx::__promote<decltype (((typename __gnu_cxx::__promote<_Tp, std::__is_integer<_Tp>::__value>::__type)(0) + (typename __gnu_cxx::__promote<_Up, std::__is_integer<_Up>::__value>::__type)(0)))>::__type> std::pow(const _Tp&, const complex<_Up>&)'
 2474 |     pow(const _Tp& __x, const std::complex<_Up>& __y)
      |     ^~~
/usr/include/c++/14/complex:2474:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:2466:5: note: candidate: 'template<class _Tp, class _Up> std::complex<typename __gnu_cxx::__promote<decltype (((typename __gnu_cxx::__promote<_Tp, std::__is_integer<_Tp>::__value>::__type)(0) + (typename __gnu_cxx::__promote<_Up, std::__is_integer<_Up>::__value>::__type)(0)))>::__type> std::pow(const complex<_Tp>&, const _Up&)'
 2466 |     pow(const std::complex<_Tp>& __x, const _Up& __y)
      |     ^~~
/usr/include/c++/14/complex:2466:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:1339:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::pow(const _Tp&, const complex<_Tp>&)'
 1339 |     pow(const _Tp& __x, const complex<_Tp>& __y)
      |     ^~~
/usr/include/c++/14/complex:1339:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:1328:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::pow(const complex<_Tp>&, const complex<_Tp>&)'
 1328 |     pow(const complex<_Tp>& __x, const complex<_Tp>& __y)
      |     ^~~
/usr/include/c++/14/complex:1328:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:1294:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::pow(const complex<_Tp>&, const _Tp&)'
 1294 |     pow(const complex<_Tp>& __x, const _Tp& __y)
      |     ^~~
/usr/include/c++/14/complex:1294:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:1285:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::pow(const complex<_Tp>&, int)'
 1285 |     pow(const complex<_Tp>& __z, int __n)
      |     ^~~
/usr/include/c++/14/complex:1285:5: note:   candidate expects 2 arguments, 3 provided
In file included from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:114:
/usr/include/c++/14/cmath:1074:5: note: candidate: 'template<class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type std::pow(_Tp, _Up)'
 1074 |     pow(_Tp __x, _Up __y)
      |     ^~~
/usr/include/c++/14/cmath:1074:5: note:   candidate expects 2 arguments, 3 provided
In file included from /usr/include/features.h:523,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/os_defines.h:39,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/c++config.h:683,
                 from /usr/include/c++/14/cassert:43,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:33:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:173:1: note: candidate: 'double pow(double, double)'
  173 | __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y));
      | ^~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:173:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/cmath:380:3: note: candidate: 'constexpr long double std::pow(long double, long double)'
  380 |   pow(long double __x, long double __y)
      |   ^~~
/usr/include/c++/14/cmath:380:3: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/cmath:376:3: note: candidate: 'constexpr float std::pow(float, float)'
  376 |   pow(float __x, float __y)
      |   ^~~
/usr/include/c++/14/cmath:376:3: note:   candidate expects 2 arguments, 3 provided