Cod sursa(job #2461312)

Utilizator stefantagaTaga Stefan stefantaga Data 25 septembrie 2019 13:09:17
Problema Light2 Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("light2.in");
ofstream g("light2.out");
long long v[25],k,n,prod,lim,sum,nr,i,j,p1,vec[500],nr1;
long long cmmdc(long long a,long long b)
{
    long long r;
    r=a%b;
    while (r)
    {
        a=b;
        b=r;
        r=a%b;
    }
    return b;
}
int main()
{
    f>>n;
    f>>k;
    for (i=1;i<=k;i++)
    {
        f>>v[i];
    }
    vec[0]=1;
    for (j=1;j<=k;j++)
    {
        vec[j]=vec[j-1]*2;
    }
    lim=(1<<k);
    for (j=1;j<lim;j++)
    {
        prod=1;
        nr=0;
        for (i=0;i<k;i++)
        {
            p1=(1<<i);
            if ((j&p1)!=0)
            {
                prod=prod*v[i+1]/cmmdc(prod,v[i+1]);
                nr++;
            }
        }
        if (nr%2==0)
        {
            sum=sum-n/prod*vec[nr-1];
        }
        else
        {
            sum=sum+n/prod*vec[nr-1];
        }
    }
    g<<sum;
    return 0;
}