Cod sursa(job #3245652)

Utilizator GabrielPopescu21Silitra Gabriel - Ilie GabrielPopescu21 Data 29 septembrie 2024 20:48:55
Problema Indep Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>
using namespace std;

long long generateSubsequences(vector<long long> &arr)
{
    long long n = arr.size();
    long long totalSubsequences = (1 << n);
    long long ans = 0;

    for (int i = 0; i < totalSubsequences; ++i)
    {
        vector<long long> subsequence;

        for (int j = 0; j < n; ++j)
        {
            if (i & (1 << j))
            {
                subsequence.push_back(arr[j]);
            }
        }

        if (subsequence.size() >= 1)
        {
            long long result = subsequence[0];
            for (int k = 1; k < subsequence.size(); ++k)
                result = __gcd(result, subsequence[k]);

            if (result == 1)
                ans++;
        }
    }

    return ans;
}

int main()
{
    ifstream cin("indep.in");
    ofstream cout("indep.out");
    int n;
    cin >> n;
    vector<long long> arr(n);

    for (int i = 0; i < n; ++i)
        cin >> arr[i];

    cout << generateSubsequences(arr);
    return 0;
}