Cod sursa(job #945357)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 1 mai 2013 19:03:36
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
//FILE *f=fopen("pb3.in","r");
FILE *f=fopen("dezastru.in","r");
FILE *g=fopen("dezastru.out","w");
using namespace std;
int v[20],used[20],n,m;
double total,vect[20];
void sum()
{
    double part=1;
    for(int i=1;i<=m;i++)part*=vect[v[i]];
    total+=part;
}
void back(int k)
{
    for(v[k]=1;v[k]<=n;v[k]++)
        if(!used[v[k]]&&v[k]>v[k-1])
        {
            used[v[k]]=1;
            if(k<m)
                back(k+1);
            else
                sum();
            used[v[k]]=0;
        }
}

int main()
{
    fscanf(f,"%d%d",&n,&m);
    for(int i=1;i<=n;i++)fscanf(f,"%lf",&vect[i]);
    back(1);
    for(int i=2;i<=n;i++)
        total/=i;
    for(int i=2;i<=n-m;i++)
        total*=i;
    fprintf(g,"%.6lf",2*total);
    return 0;
}