Cod sursa(job #3224533)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 15 aprilie 2024 16:33:22
Problema Light2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>

#pragma optimize GCC ("Ofast")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")

///#include <tryhardmode>
///#include <GODMODE::ON>

using namespace std;

ifstream fin ("light2.in");
ofstream fout ("light2.out");

const int NMAX=25;

#define int long long

long long kon;
int v[NMAX];
int n,k;

void backt(int p,int x,int total)
{
    int i;
    if(total>0)
    {
        if(total%2==1)
            kon+=(1<<(total-1))*(k/x);
        else
            kon-=(1<<(total-1))*(k/x);
    }
    if(total>=n)
        return ;
    else
    {
        for(i=p+1;i<=n;i++)
        {
            int lcm;
            lcm=x*v[i]/__gcd(x,v[i]);
            if(lcm<=k)
                backt(i,lcm,total+1);
        }
    }
}

signed main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(NULL);
    fout.tie(NULL);

    int i,j;
    fin>>k>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    backt(0,1,0);
    fout<<kon;
    fin.close();
    fout.close();
    return 0;
}