Cod sursa(job #1015224)

Utilizator PlatonPlaton Vlad Platon Data 24 octombrie 2013 08:40:47
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <iostream>

using namespace std;

ifstream f("dezastru.in");
ofstream g("dezastru.out");

float sir[200];
int n, k, a[200], b[200], nf;
float s;

void adauga()
{
    float t = 1;
    for(int i=1;i<n;i++)
    {
        t*=sir[a[i]];
    }
    s+=t/nf;
}

void permut(int l)
{
    if(l==n)
    {
       for(int i=1;i<=n;i++)
        {
            cout<<a[i]<<" ";
        }cout<<endl;

        adauga();
    }
    else
    {
        for(int i=1;i<=n;i++)
        {
            if(!b[i])
            {
                b[i]=1;
                a[l+1]=i;
                permut(l+1);
                b[i]=0;
            }

        }
    }
}

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

int main()
{
    f>>n>>k;
    nf = fact(n);
    for(int i=1;i<=n;i++)
    {
        f>>sir[i];
    }

    permut(0);

    g<<s;

    f.close();

    return 0;
}