AtCoder Beginner Contestの過去問から、その提出コードの解答例です。
AtCoderとは、コンテストを通じて、プログラミングやアルゴリズムを学習するサービスです。
atcoder.jp
プログラミングコンテストとは、「与えられた問題をいかに素早く、正確に」解くことができるかを競うものです。
「競技プログラミング」を略して、「競プロ」などと呼ばれています。
#D - 派閥
僕が作成、提出したコードは、以下のとおりです。
/* AtCoder Problems in C++ #D - 派閥 https://atcoder.jp/contests/abc002/tasks/abc002_4 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int n,m,a[20][20]={0},ans=0; void solve(vector<int> v,int k=0){ if(k==n){ for(int i=0;i<v.size();i++){ for(int j=i+1;j<v.size();j++){ if(a[v[i]][v[j]]==0){ return; } } } ans=max(ans,(int)v.size()); }else{ solve(v,k+1); v.push_back(k); solve(v,k+1); v.pop_back(); } } int main(void){ cin>>n>>m; for(int i=0;i<m;i++){ int x,y; cin>>x>>y; --x; --y; a[x][y]=a[y][x]=1; } vector<int> v; solve(v); cout<<ans<<endl; return 0; }
AtCoder Beginner Contestは、オンラインジャッジによるプログラミングコンテストです。
日本語と英語に対応していて、週末ごとに実施されているみたいです。
https://practice.contest.atcoder.jp/tutorial
アカウントを登録すれば、誰でも参加できます。