/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 3ms 532.0 KiB
#3 Accepted 12ms 532.0 KiB
#4 Accepted 10ms 568.0 KiB
#5 Accepted 9ms 536.0 KiB
#6 Accepted 9ms 532.0 KiB
#7 Accepted 7ms 532.0 KiB

Code

#include <bits/stdc++.h>
using namespace std;

const int mod = 1e9 + 7;

void solve() {
  int n;
  cin >> n;
  vector<int> a(n);
  for (auto& ai : a) {
    cin >> ai;
  }
  vector<int64_t> sum(n + 1);
  for (int mask = 0; mask < (1 << n); mask++) {
    int g = 0;
    for (int i = 0; i < n; i++) {
      if (mask & (1 << i)) {
        g = gcd(g, a[i]);
      }
    }
    sum[__builtin_popcount(mask)] += g;
  }
  int64_t mul = 1;
  for (int i = 1; i <= n; i++) {
    if (sum[i]) {
      mul = (mul * sum[i]) % mod;
    }
  }
  cout << mul << '\n';
}

int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  int t = 1;
  cin >> t;
  for (int i = 1; i <= t; i++) {
    solve();
  }
  return 0;
}

Information

Submit By
Type
Submission
Problem
P1105 Ohh that gcd again
Contest
LUCC Presents Intra LU Junior Programming Contest - Replay
Language
C++17 (G++ 13.2.0)
Submit At
2025-09-02 16:27:23
Judged At
2025-09-02 16:27:41
Judged By
Score
100
Total Time
12ms
Peak Memory
568.0 KiB