/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 11ms 536.0 KiB
#3 Accepted 54ms 532.0 KiB
#4 Accepted 51ms 532.0 KiB
#5 Accepted 49ms 532.0 KiB
#6 Accepted 47ms 532.0 KiB
#7 Accepted 42ms 532.0 KiB

Code

#include<bits/stdc++.h>
using namespace std;
const long long mode=1e9+7;
int main()
{
    long long t;
    cin>>t;
    while(t--){
        long long a;
        cin>>a;
        vector<long long>v;
        long long sum1=0;
        for(long long i=1;i<=a;i++){
            long long x;
            cin>>x;
            sum1+=x;
            v.push_back(x);
        }
        vector<vector<long long>>res;
        res.push_back({});
        for(long long i=0;i<a;i++){
            long long sz=res.size();
            for(long long j=0;j<sz;j++){
                vector<long long> ans=res[j];
                ans.push_back(v[i]);
                res.push_back(ans);
            }
        }
        vector<long long>ans;
        map<long long,long long>cnt;
        for(long long i=2;i<=a;i++){
            vector<long long>v1;
            for(auto u:res){
                if(u.size()==i){
                    long long gcd=0;
                    for(auto g:u){
                        gcd=__gcd(gcd,g);
                    }
                    v1.push_back(gcd);
                }
            }
            if(!v1.empty()){
                long long sum=0;
                for(auto u:v1) sum+=u;
                ans.push_back(sum);
            }
        }
        sum1%=mode;
        for(auto u:ans){
            sum1=((sum1%mode)*(u%mode))%mode;
        }
        cout<<sum1<<endl;
    }
}

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 17:17:01
Judged At
2025-09-02 17:17:01
Judged By
Score
100
Total Time
54ms
Peak Memory
536.0 KiB