Cod sursa(job #1022817)

Utilizator leontinLeontin leontin Data 5 noiembrie 2013 23:08:08
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int v[1000000],n,k,nr=0;
double a[1000000],b[260];
int sol(int p)
{
    return (p==n);
}
void retine(int p)
{
    int i;
    nr++;
    a[nr]=1;
    for(i=1;i<=k;i++)
    a[nr]=b[v[i]]*a[nr];


}
int cont(int p)
{
    int i;
    for(i=1;i<p;i++)
    if(v[i]==v[p])
return 0;
return 1;
}
void back(int p)
{
    int i;
    for(i=1;i<=n;i++)
    {

        v[p]=i;
        if(cont(p))
        if(sol(p))
        retine (p);
        else back(p+1);

    }
}
int main()
{
    f>>n>>k;
    double sum=0;
    int i;
    for(i=1;i<=n;i++)
    f>>b[i];
    back(1);
    for(i=1;i<=nr;i++)
    {
        a[i]=a[i]/6;
        sum=sum+a[i];
    }
    g<<sum;

    return 0;
}