Cod sursa(job #2439063)

Utilizator Briana_NeaguNeagu Briana Briana_Neagu Data 14 iulie 2019 20:07:10
Problema Ratphu Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;


ifstream f("ratphu.in");
ofstream g("ratphu.out");

long long dp[ 1 << 19 ][21];

int main()
{
  long long n;
  int p;
  int cifre[19];
  f >> n >> p;

  int i ;
  for (  i = 0; i < 19 && n; i++ )
  {
      cifre[i] = n % 10 ;
      n /= 10;
  }

  int nrcifre = i;

  dp[0][0] = 1;

  for ( int i = 0 ;  i < (1 << nrcifre ); i++ )
      for ( int j = 0; j < 20; j++)
          if (dp[i][j] != 0 )
          for ( int bit = 0; bit < nrcifre ; bit++)
              if ( (i & ( 1 << bit )) == 0)
                  dp[i ^ (1 << bit) ][(j*10 + cifre[bit]) % p] += dp[i][j];


  g << dp[(1 << (nrcifre )) -1 ][0];

}