Cod sursa(job #1015051)

Utilizator diana97Diana Ghinea diana97 Data 23 octombrie 2013 20:14:17
Problema Dezastru Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>
#include <iomanip>
#include <vector>
#include <algorithm>
using namespace std;

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

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

vector <int> sol;

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

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

void genereaza ( )
{
    int t=0;
    float p;
   do
   {
       t++; p=1;
       for (int i=0; i<m; i++) p=p*v[sol[i]];
     //  for (int i=0; i<n; i++) cout<<sol[i];
     //  cout<<endl;
       probabilitate+=p;
   }
   while (next_permutation(sol.begin (), sol.end ()));
   probabilitate=probabilitate/t*1.0;
}

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