Cod sursa(job #1386612)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 13 martie 2015 09:23:24
Problema Light2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
int n,k,pos=0;
int a[23],fin[23];
bool b[23];
int sum;
void ver()
{
     int ps=1,ct=0;
     for(int i=1;i<=pos;i++)
     {
             if(b[i]==1)
             {
                        ps*=fin[i];
                        ct++;
             }
     }
     if(ct!=0)
     {
              if(ct%2==1) sum+=n/ps;
              else sum-=(2*(n/ps));
     }
}
void bcs(int p)
{
     if(p==pos+1) ver();
     else
     {
         for(int i=0;i<2;i++)
         {
                 b[p]=i;
                 bcs(p+1);
         }
     }
}
int main()
{
    freopen ("light2.in","r",stdin);
    freopen ("light2.out","w",stdout);
    scanf("%d%d",&n,&k);
    for(int i=1;i<=k;i++)
    {
            scanf("%d",&a[i]);
    }
    int ct=1;
    sort(a+1,a+k+1);
    for(int i=2;i<=k;i++)
    {
            if(a[i]==a[i-1]) ct++;
            else
            {
                if(ct%2==1) fin[++pos]=a[i-1];
                ct=1;
            }
    }
    if(ct%2==1) fin[++pos]=a[k];
    bcs(1);
    printf("%d\n",sum);
}