雑記・まとめ

個人的な備忘録

abc145_c

問題文通りに実装するだけ

こういう系って再帰で実装できなかったかなぁー?とこねくり回したけどうまく書けず

 

ググったら便利な関数出てきてほぼ写経

 

#include<bits/stdc++.h>
using namespace std;

int n;
int x[10], y[10];
vector < int > v;

int main(){

    cin >> n;
    for(int i=0;i<n;i++){
        cin >> x[i] >> y[i];
        v.push_back(i);
    }

    double ret = 0;
    double cnt = 0;
    do{
        for(int i=1;i<n;i++) ret += hypot(x[v[i]]-x[v[i-1]], y[v[i]]-y[v[i-1]]);
        cnt++;
    } while(next_permutation(begin(v), end(v)));

    printf("%lf\n", ret/cnt);
   
}