Cod sursa(job #1721485)

Utilizator testsursaSurseTest testsursa Data 25 iunie 2016 18:51:03
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
//Nu e sursa mea
#include <bits/stdc++.h>

const int EXP = 19;
const int MOD = 20;
using namespace std;

long long dp[1 << EXP][MOD];
int n, p; char s[EXP];

inline int f( int x ) {
    while( x >= p )
        x -= p;
    return x;
}

int main( void ) {

    ifstream input_file ( "ratphu.in"  );
    ofstream output_file( "ratphu.out" );

    input_file >> s >> p; n = strlen(s);
    dp[0][0] = 1;

    for( int mask = 0; mask < (1 << n); mask ++ ) {
    for( int r = 0; r < p; r ++ ) {
        if( dp[mask][r] == 0 )
            continue;

        for( int i = 0; i < n; i ++ ) {
            if( (mask & (1 << i)) )
                continue;

            dp[mask + (1 << i)][f(r * 10 + (s[i] - '0'))] += dp[mask][r];
        }
    }}

    output_file << dp[(1 << n) - 1][0];

    return 0;
}