fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6. typedef pair<int, int> ii;
  7.  
  8. const int INF = 1e9;
  9. const ll LINF = 1e18;
  10.  
  11. const int N = 2e5 + 5;
  12.  
  13. int n;
  14. int x[N];
  15.  
  16. int sos_sub[1 << 20], sos_super[1 << 20];
  17.  
  18. int main() {
  19. ios::sync_with_stdio(false);
  20. cin.tie(nullptr);
  21. cin >> n;
  22. for (int i = 1; i <= n; i++) cin >> x[i];
  23.  
  24. for (int i = 1; i <= n; i++) {
  25. ++sos_sub[x[i]];
  26. ++sos_super[x[i]];
  27. }
  28.  
  29. for (int i = 0; i < 20; i++) {
  30. for (int mask = 0; mask < (1 << 20); mask++) {
  31. if (mask & (1 << i)) sos_sub[mask] += sos_sub[mask ^ (1 << i)];
  32. else sos_super[mask] += sos_super[mask ^ (1 << i)];
  33. }
  34. }
  35.  
  36. int full = (1 << 20) - 1;
  37. for (int i = 1; i <= n; i++) {
  38. cout << sos_sub[x[i]] << ' ' << sos_super[x[i]] << ' ' << n - sos_sub[full ^ x[i]] << '\n';
  39. }
  40.  
  41. }
Success #stdin #stdout 0.04s 11780KB
stdin
5
3 7 2 9 2
stdout
3 2 5
4 1 5
2 4 4
1 1 3
2 4 4