Cod sursa(job #1780456)

Utilizator stelian2000Stelian Chichirim stelian2000 Data 16 octombrie 2016 11:28:53
Problema Light2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>

using namespace std;

int v1[25],v[25];
long long n,sol;

long long cmmmc(long long a,long long b)
{
    long long p,r;
    p=a*b;
    while(1)
    {
        r=a%b;
        if(r==0) break;
        a=b;
        b=r;
    }
    b=p/b;
    return b;
}

void back_trk(int i,long long b,int l)
{
    b=cmmmc(v[i],b);
    l++;
    if(l>n) return;
    if(l%2==0) sol=sol-(1<<(l-1))*(n/b);
    else sol=sol+(1<<(l-1))*(n/b);
    for(int j=i-1;j>=0;j--)
        back_trk(j,b,l);
}

int main()
{
    freopen("light2.in","r",stdin);
    freopen("light2.out","w",stdout);
    int k,c;
    scanf("%lld%d",&n,&k);
    for(int i=0;i<k;i++)
    {
        scanf("%d",&v[i]);
        back_trk(i,1,0);
    }
    printf("%lld",sol);
    return 0;
}