Cod sursa(job #1712678)

Utilizator AdrianGotcaAdrian Gotca AdrianGotca Data 3 iunie 2016 12:36:27
Problema Ratphu Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <cstring>
#include <algorithm>

using namespace std;

char s[20];
long long viz[20],a[20];
long long p,nr,n;
void bkt(long long);
long long verif(long long);
int main(){
    freopen("ratphu.in","r",stdin);
    freopen("ratphu.out","w",stdout);
    scanf("%s %d",s+1,&p);
    n=strlen(s+1);
    sort(s+1,s+1+strlen(s+1));
    bkt(1);
    printf("%d",nr);
    return 0;
}

void bkt(long long k)
{
    long long i=0;
    if (k==n+1){
        long long numar=0;
        for (long long i=1;i<=n;i++){
            numar=numar*10+s[a[i]];
        }
        nr+=verif(numar);
    }
    else{
        for (i=1;i<=n;i++)
            if (!viz[i]){
                a[k]=i;
                viz[i]=1;
                bkt(k+1);
                viz[i]=0;
            }
    }
}

long long verif(long long x){
    return (x%p==0);
}