Cod sursa(job #1319391)

Utilizator WyvernFMI Stanescu Leonard Wyvern Data 16 ianuarie 2015 22:12:42
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 0.63 kb
#include <fstream>
#include <string>
#include <vector>
using namespace std;
ifstream fi("ratphu.in");
ofstream fo("ratphu.out");
string s;
int p;
long long m[1<<18][21];
int main (){
    fi>>s>>p;
    for(size_t i=0;i<s.size();++i){
        s[i]=(s[i]-'0')%p;
        m[1<<i][s[i]]=1;
    }
    for(int i=0;i<(1<<s.size());++i )
        for(int j=0;j<s.size();++j )
            if((i&(1<<j))==0)
                for(int k=0;k<p;++k){
                    int x=k*10+s[j];
                    for(;x>=p;x=x-p);
                    m[i|(1<<j)][x]+=m[i][k];
                }
    fo<<m[(1<<s.size())-1][0];
    return 0;
}