Cod sursa(job #1321203)

Utilizator Aleks10FMI - Petrache Alex Aleks10 Data 18 ianuarie 2015 20:49:25
Problema Ratphu Scor 0
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 1.04 kb
//
//  main.cpp
//  ratphu
//
//  Created by Alex Petrache on 18/01/15.
//  Copyright (c) 2015 Alex Petrache. All rights reserved.
//

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
long long d[1 << 20][20];
int main(int argc, const char * argv[]) {
    char s[20];
    int c[20],n,i,p,j,k,act;
//    ifstream f("/Users/alexpetrache/Documents/Programare/Xcode/ratphu/ratphu/ratphu.in");
    ifstream f("ratphu.in");
    ifstream g("ratphu.out");
    f>>s;
    n=strlen(s);
    for(i=0;i<n;i++)
        c[i]=s[i]-'0';
    f>>p;
    
//        for(i=0;i<n;i++)
//            cout<<c[i];
    d[0][0] = 1;
    
    for(i = 0; i < (1 << n);i++)
        for(j = 0; j < p; j++)
            if(d[i][j])
                for(k = 0; k < n; k++)
                    if(!((1 << k) & i)){
                        act = j * 10 + c[k];
                        while(act >= p)
                            act -= p;
                        d[i | (1 << k)][act] += d[i][j];
                    }
    
    cout << d[(1 << n) - 1][0];
    
    return 0;
}