AtCoder Beginner Contestの過去問から、その提出コードの解答例です。
AtCoderとは、コンテストを通じて、プログラミングやアルゴリズムを学習するサービスです。
atcoder.jp
プログラミングコンテストとは、「与えられた問題をいかに素早く、正確に」解くことができるかを競うものです。
「競技プログラミング」を略して、「競プロ」などと呼ばれています。
#C - Average Length
atcoder.jp
僕が作成、提出したコードは、以下のとおりです。
/* AtCoder Problems in C++ #C - Average Length https://atcoder.jp/contests/abc145/tasks/abc145_c 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; #define pb push_back int main(void){ int n,x[8],y[8]; vector<int> p; cin>>n; for(int i=0;i<n;i++){ cin>>x[i]>>y[i]; p.pb(i); } double ans=0; int cnt=0; do{ double d=0; for(int i=0;i<n-1;i++){ double dx=abs(x[p[i+1]]-x[p[i]]); double dy=abs(y[p[i+1]]-y[p[i]]); d+=sqrt(pow(dx,2)+pow(dy,2)); } ans+=d; ++cnt; }while(next_permutation(p.begin(),p.end())); ans/=cnt; printf("%.10lf\n",ans); return 0; }
AtCoder Beginner Contestは、オンラインジャッジによるプログラミングコンテストです。
日本語と英語に対応していて、週末ごとに実施されているみたいです。
https://practice.contest.atcoder.jp/tutorial
アカウントを登録すれば、誰でも参加できます。