Cod sursa(job #2265347)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 20 octombrie 2018 23:29:25
Problema Dezastru Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>

using namespace std;

ifstream fin  ("dezastru.in");
ofstream fout ("dezastru.out");

int n, p;
double v[50], x[50], s;

int fact (int n){
    if (n == 0)
        return 1;
    return fact(n-1)*n;
}

double calcul (int k){
    int i;
    double p = 1;
    for (i=1; i<=k; i++){
        p *= x[i];
    }
    return p;
}

bool verif (int k){
    int i;
    if (k == 1)
        return true;
    for (i=1; i<k; i++){
        if (x[i] == x[k])
            return false;
    }
    return true;
}

void bkt (int k){
    int i;
    for (i=x[k]+1; i<=n; i++){
        x[k] = v[i];
        if (verif(k)){
            if (k == n){
                s += calcul(p)/fact(n);
            }
            else{
                bkt(k+1);
            }
        }
    }
}

int main(){
    fin >> n >> p;
    for (int i=1; i<=n; i++){
        fin >> v[i];
    }
    bkt(1);
    fout << s;
    return 0;
}
//10p, TLE (??????)