Cod sursa(job #1313509)

Utilizator kira2071Diana C kira2071 Data 10 ianuarie 2015 18:54:31
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <stdio.h>

using namespace std;

int n,k,m,st[40],nr;
double v[40],S;

void afis()
{
float s=1;
for(int i=1; i<=m; i++)
    s*=v[st[i]];
s=s/nr;
S=S+s+s;
}

int valid()
{
for(int i=1;i<k;i++)
    if(st[i]==st[k])
        return 0;
return 1;
}

void backc()
{
k=1;
while(k>=1)
    {if(st[k]<n)
        {st[k]++;
        if(valid()==1)
            {if(k==m)
                afis();
            else
                {k++;
                st[k]=st[k-1];
                }
            }
        }
    else
        k--;
    }
}


int main()
{int i;
ifstream f("dezastru.in");
FILE *g;
g=fopen("dezastru.out","w");
f>>n>>m;
nr=1;
for(i=n;i>=2;i--)
    nr=nr*i;
for(i=1;i<=n;i++)
    {
    f>>v[i];}
backc();

fprintf(g,"%.6f",S);


return 0;
}