fork download
  1. #include <bits/stdc++.h>
  2.  
  3. #define fastio ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
  4. using namespace std;
  5.  
  6. const int N = 1005;
  7. const int M = 12;
  8.  
  9. int n, m;
  10. int a[N], b[N];
  11.  
  12. void doit()
  13. {
  14. scanf("%d%d", &m, &n);
  15.  
  16. for (int i = 1; i <= n + 1; ++i)
  17. {
  18. a[i] = 0;
  19. for (int j = 0; j < m; ++j)
  20. {
  21. int x;
  22. scanf("%d", &x);
  23. a[i] += x << j;
  24. }
  25. if (i <= n)
  26. scanf("%d", &b[i]);
  27. }
  28. b[n + 1] = 0;
  29.  
  30. int max_pt = -(1 << 28), min_pt = 1 << 28;
  31. for (int i = 1; i <= n; ++i)
  32. {
  33. int j = n + 1;
  34. int pt = __builtin_popcount(a[i] & a[j]) * (b[i] - b[j]);
  35. // printf("%d %d\n", i, pt);
  36. max_pt = max(max_pt, pt);
  37. min_pt = min(min_pt, pt);
  38. }
  39. printf("%d\n", max_pt - min_pt);
  40. }
  41.  
  42. int main()
  43. {
  44. int K;
  45. scanf("%d", &K);
  46. for (int _ = 1; _ <= K; ++_)
  47. {
  48. printf("Data Set %d:\n", _);
  49. doit();
  50. }
  51.  
  52. return 0;
  53. }
Success #stdin #stdout 0.01s 5476KB
stdin
2
4 3
1 0 0 0 -5
1 1 0 1 2
0 1 1 0 3
1 0 1 1
2 3
1 0 -100
0 0 101
0 1 -1
0 1
stdout
Data Set 1:
9
Data Set 2:
1