Cod sursa(job #465871)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 25 iunie 2010 13:42:53
Problema Ratphu Scor 40
Compilator cpp Status done
Runda Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 1 Marime 0.8 kb
#include <cstdio>

int pp, sol, v[24], u[25], a[26], l;
long long n;

void back(int p)
{
    int i;
    if (p>l)
    {
        long long t=0;
        for (i=1; i<=l; i++) t=t*10+a[i];
        if (!(t%pp)) sol++;
    } else
        for (i=1; i<=l; i++)
            if (!u[i])
            {
                u[i]=1;
                a[p]=v[i];
                back(p+1);
                u[i]=0;
            }
}


int main()
{
    freopen("ratphu.in","r",stdin);
    freopen("ratphu.out","w",stdout);
    scanf("%lld %d",&n,&pp);
    int i, c;
    long long x=n;
    while (x)
    {
        l++;
        v[l]=x%10;
        x/=10;
    }
    for (i=1; i<=l/2; i++)
    {
        c=v[i];
        v[i]=v[l-i+1];
        v[l-i+1]=c;
    }
    back(1);
    printf("%d\n",sol);
}