Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Calender Colors"
https://onlinejudge.u-aizu.ac.jp/problems/2300
・カレンダーの色
僕が作成、提出したコードは、以下のとおりです。
Aizu Online Judge in C++ #Volume23 : 2300 - Calender Colors
/* Aizu Online Judge in C++ #Volume23 : 2300 - Calender Colors https://onlinejudge.u-aizu.ac.jp/problems/2300 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; double a[20][3],ans=0,p; ll n,m,c[20]; void DFS(ll x,ll d){ if(d==m){ p=0; for(ll i=0;i<m;i++){ for(ll j=i+1;j<m;j++){ p+=pow(a[c[i]][0]-a[c[j]][0],2)+pow(a[c[i]][1]-a[c[j]][1],2)+pow(a[c[i]][2]-a[c[j]][2],2); } } ans=max(ans,p); }else if(x==n){ return; }else{ c[d]=x; DFS(x+1,d+1); DFS(x+1,d); } } int main(void){ cin>>n>>m; for(ll i=0;i<n;i++){ cin>>a[i][0]>>a[i][1]>>a[i][2]; } DFS(0,0); printf("%.6f\n",ans); return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/