#include <iostream> #include <string> using namespace std; int main(){ ios_base::sync_with_stdio(0); int n; cin >> n; long long w = 0; int r1, r2, r3; string s1, s2, s3; cin >> r1 >> s1; cin >> r2 >> s2; cin >> r3 >> s3; for(int i = 0; i < 1<<n; i++){ string i2; int tmp = i; for(int j = 0; j < n; j++){ if(tmp%2 == 1){ i2+='1'; tmp/=2; }else{ i2+='0'; tmp/=2; } } int nah = 0; int l1 = 0; for(int k = 0; k < n; k++){ if(s1[k] != i2[k]){ l1++; } } if(l1 <= r1){ nah++; w++; } int l2 = 0; if(nah == 0){ for(int k = 0; k < n; k++){ if(s2[k] != i2[k]){ l2++; } } if(l2 <= r2){ nah++; w++; } } int l3 = 0; if(nah == 0){ for(int k = 0; k < n; k++){ if(s3[k] != i2[k]){ l3++; } } if(l3 <= r3){ w++; } } } cout << w << endl;; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | #include <iostream> #include <string> using namespace std; int main(){ ios_base::sync_with_stdio(0); int n; cin >> n; long long w = 0; int r1, r2, r3; string s1, s2, s3; cin >> r1 >> s1; cin >> r2 >> s2; cin >> r3 >> s3; for(int i = 0; i < 1<<n; i++){ string i2; int tmp = i; for(int j = 0; j < n; j++){ if(tmp%2 == 1){ i2+='1'; tmp/=2; }else{ i2+='0'; tmp/=2; } } int nah = 0; int l1 = 0; for(int k = 0; k < n; k++){ if(s1[k] != i2[k]){ l1++; } } if(l1 <= r1){ nah++; w++; } int l2 = 0; if(nah == 0){ for(int k = 0; k < n; k++){ if(s2[k] != i2[k]){ l2++; } } if(l2 <= r2){ nah++; w++; } } int l3 = 0; if(nah == 0){ for(int k = 0; k < n; k++){ if(s3[k] != i2[k]){ l3++; } } if(l3 <= r3){ w++; } } } cout << w << endl;; return 0; } |