Cod sursa(job #1014576)

Utilizator diana97Diana Ghinea diana97 Data 22 octombrie 2013 21:37:13
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

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

int n, m, t;
int sol[30];
float probabilitate;
float v[30];

void citeste ()
{
    f>>n>>m;
    for (int i=1; i<=n; i++) f>>v[i];
}

void adauga ()
{
    t++;
    float p=1;
    for (int i=1; i<=m; i++) p=p*v[sol[i]];
    //cout<<p<<' ';
   //  for (int i=1; i<=m; i++) cout<<sol[i]<<' ';
    //cout<<'\n';
    probabilitate+=p;
}

void genereaza (int k)
{
    if (k==m+1) adauga ();
    else
    {
        int l=n-m+k;
        for (int i=sol[k-1]+1; i<=l; i++) {sol[k]=i; genereaza (k+1);}
    }

}

int main ()
{
    citeste ();
    genereaza (1);
    probabilitate/=t*1.0;
    g<<fixed<<setprecision(6)<<probabilitate<<'\n';
    return 0;
}