Cod sursa(job #470403)

Utilizator PavelRazvanPavel Razvan PavelRazvan Data 13 iulie 2010 18:07:45
Problema Ratphu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<algorithm>
using namespace std;
#include<bitset>

#define DIM 20

char a[DIM],sol[DIM];
int k,n,rez;
bitset <DIM> v;

inline bool mod (int nr,int x)
{
    while(nr>=x)
        nr-=x;
    if(nr==0)
        return 1;
    return 0;
}

void back (int x)
{
    int i;
    long long unsigned nr;
    if(x==n+1)
    {
        nr=0;
        for(i=1;i<=n;++i)
            nr=nr*10+sol[i]-'0';
        if(mod(nr,k))
            ++rez;
    }
    else
    {
        for(i=1;i<=n;++i)
            if(!v[i])
            {
                v[i]=1;
                sol[x]=a[i];
                back(x+1);
                v[i]=0;
            }
    }
}
int main ()
{
    freopen("ratphu.in","r",stdin);
    freopen("ratphu.out","w",stdout);
    int i=0;
    for(scanf("%c",&a[++i]);a[i]!=' ';scanf("%c",&a[++i]));
    n=i-1;
    scanf("%d",&k);
    back(1);
    printf("%d",rez);
    return 0;
}