fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. #define ii pair<int,int>
  5. #define iii pair<int, ii>
  6. #define fi first
  7. #define se second
  8. #define inf 10000000000000000
  9. const int N = 1e6+5, mod = 1e9 + 7;
  10. int n, a[N], f[N], s[N];
  11. signed main() {
  12. ios::sync_with_stdio(0);
  13. cin.tie(0);
  14. if(fopen("main.inp","r")) {
  15. freopen("main.inp", "r", stdin);
  16. freopen("main.out", "w", stdout);
  17. }
  18. cin >> n;
  19. for(int i = 0; i < n; i++) {
  20. cin >> a[i];
  21. s[i] = a[i];
  22. }
  23. for(int bit = 0; bit < 18; bit++) {
  24. for(int mask = 0; mask < (1<<18); mask++) {
  25. if(mask&(1<<bit)) {
  26. int sub = mask^(1<<bit);
  27. s[mask] += s[sub];
  28. s[mask] %= mod;
  29. }
  30. }
  31. }
  32. for(int i = 0; i < n; i++) f[i] = s[i]*s[i]%mod;
  33. for(int bit = 0; bit < 18; bit++) {
  34. for(int mask = 0; mask < (1<<18); mask++) {
  35. if(mask&(1<<bit)) {
  36. int sub = mask^(1<<bit);
  37. f[mask] -= f[sub];
  38. f[mask] = (f[mask]%mod+mod)%mod;
  39. }
  40. }
  41. }
  42. int ans = 0;
  43. for(int i = 0; i < n; i++) {
  44. ans = (ans + f[i]) % mod;
  45. cout << ans << ' ';
  46. }
  47.  
  48. }
  49.  
Success #stdin #stdout 0.03s 7648KB
stdin
Standard input is empty
stdout
Standard output is empty