Cod sursa(job #1325052)

Utilizator LegionHagiu Stefan Legion Data 23 ianuarie 2015 10:41:18
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <fstream>
using namespace std;
double dez[26];
int locatii[26];
int n,k;
int total;
double valoare;
bool verificaretemporara(int n)
{
    int incluse[26],i;
    for (i=1;i<=25;i++)
    {
        incluse[i]=0;
    }
    for (i=1;i<=n;i++)
    {
        if (!incluse[locatii[i]])
        incluse[locatii[i]]=1;
        else
        {
            return false;
        }
    }
    return true;
}
void generarepermutari(int i)
{
    int j;
    double acum=1.0;
    if (i<=n)
    {
        for (j=1;j<=k;j++)
        {
            locatii[i]=j;
            if(verificaretemporara(i))
            generarepermutari(i+1);
        }
    }
    else
    {
        total++;
        for (i=1;i<=n;i++)
        {
            acum*=dez[locatii[i]];
        }
        valoare+=acum;
    }
}
int main()
{
    ifstream in("dezastru.in");
    ofstream out("dezastru.out");
    int i;
    in>>k;
    in>>n;
    for (i=1;i<=k;i++)
    {
        in>>dez[i];
    }
    generarepermutari(1);
    valoare/=total;
    out<<valoare;
}