fork(1) download
  1. #include <bits/stdc++.h>
  2. typedef long long ll;
  3. using namespace std;
  4. const int N = 14, M = 1000000007;
  5. int t, n, x, f[N][6], id;
  6. ll ans;
  7. map<int, int> st;
  8. int Pow(int x, int n) {
  9. int y = 1;
  10. int u = x % M;
  11. while (n) {
  12. if (n & 1) y = (ll)y * u % M;
  13. n >>= 1;
  14. u = (ll)u * u % M;
  15. }
  16. return y;
  17. }
  18.  
  19. int count(int x) {
  20. return st[x];
  21. }
  22.  
  23. void gen(int s, int e, int mul) {
  24. if (s == e) {
  25. if (id == 0)
  26. ++st[mul];
  27. else ans += count(((ll)x * Pow(mul, M - 2)) % M);
  28. }
  29. else for (int i = 0; i < 6; ++i)
  30. gen(s + 1, e, (ll)mul * f[s][i] % M);
  31. }
  32.  
  33.  
  34. int main() {
  35. scanf("%d", &t);
  36. while (t--) {
  37. scanf("%d%d", &n, &x);
  38. for (int i = 0; i < n; ++i)
  39. for (int j = 0; j < 6; ++j)
  40. scanf("%d", &f[i][j]);
  41. st.clear();
  42. id = 0;
  43. gen(0, n / 2, 1);
  44. ans = 0; id = 1;
  45. gen(n / 2, n, 1);
  46. printf("%lld\n", ans);
  47. }
  48. return 0;
  49. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Standard output is empty