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