Cod sursa(job #958248)

Utilizator alexblackFMI - Dumitrache Alexandru alexblack Data 7 iunie 2013 12:18:35
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("dezastru.in");
ofstream out("dezastru.out");
int const N=26;
int n,k,total,p[N];
float suma,v[N];
bool marcat[N];
void combinari()
{
    p[0]=1;
    for(int i=1;i<N;i++)
        p[i]=i*p[i-1];
    /*
    c[1][0]=c[0][0]=1;
    for(int i=0;i<=n;i++)
        for(int j=0;j<n;j++)
            c[i+1][j+1]=c[i][j]+c[i][j+1];
    */
}
void back(int p, float rez)
{
    if(p==k+1){suma+=rez/total;return;}
    for(int i=1;i<=n;i++)
        if(!marcat[i])
        {
            marcat[i]=true;
            back(p+1,rez*v[i]);
            marcat[i]=false;
        }
}
int main()
{
    in>>n>>k;
    combinari();
    total=p[n];
    for(int i=1;i<=n;i++)
        in>>v[i];
    back(1,1);
    out<<suma<<"\n";
    return 0;
}