2019-11-29 19:03:24 C++

C++

Copy Copied! Full
#include <bits/stdc++.h> #define rep(i,n) for(int i=0;i<(n);i++) using namespace std; int k[15]; int s[15][15]; bool p[15]; bool cs[15]; int main(void){ cin.tie(0); ios::sync_with_stdio(false); int N,M; cin >> N >> M; rep(i,M){ cin >> k[i]; rep(j,k[i])cin >> s[i][j]; } rep(i,M)cin >> p[i]; int ans = 0; //各スイッチをon off 2^N通り試す for(int i=0;i<(1<<N);i++){ for(int j=0;j<N;j++){ if((i>>j)&1)cs[j] = 1;//スイッチのj番目はon else cs[j] = 0;//スイッチのj番目はoff } int tmp = 0; for(int j=0;j<M;j++){ //各電球について int cnt = 0; for(int a=0;a<k[j];a++){ if(cs[s[j][a]-1])cnt++; } if(cnt%p[j])tmp++; } if(tmp==M)ans++; } cout << ans << endl; }
RECOMMEND