ccbeginner

XD

Jan 7th, 2022
792
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.75 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int constexpr maxn = 1e5 + 10;
  5.  
  6. int n, a[maxn];
  7.  
  8. int main() {
  9.   cin >> n;
  10.   for(int i = 1; i <= n; i++) cin >> a[i];
  11.  
  12.   vector<int> num[maxn], cnt[maxn];
  13.   for(int i = 1; i <= n; i++) {
  14.     for(int j = 0; j < num[i-1].size(); ++j){
  15.       int x = __gcd(num[i-1][j], a[i]);
  16.       if(!num[i].empty() && x == num[i].back()){
  17.         cnt[i].back() += cnt[i-1][j];
  18.       }else{
  19.         num[i].emplace_back(x);
  20.         cnt[i].emplace_back(cnt[i-1][j]);
  21.       }
  22.     }
  23.     num[i].emplace_back(a[i]);
  24.     cnt[i].emplace_back(1);
  25.   }
  26.  
  27.   int sum = 0;
  28.   for(int i = 1; i <= n; ++i){
  29.     for(int j = 0; j < num[i].size(); ++j){
  30.       sum += num[i][j] * cnt[i][j];
  31.     }
  32.   }
  33.   cout << sum << '\n';
  34. }
Advertisement
Add Comment
Please, Sign In to add comment