Cod sursa(job #1378392)

Utilizator LegionHagiu Stefan Legion Data 6 martie 2015 11:58:07
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,k,total;
double dez[30],prob[30][30];
int cate[30][30];
int main()
{
    ifstream in("dezastru.in");
    ofstream out("dezastru.out");
    int i,j,total=0;
    double acum=0.0;
    in>>n>>k;
    for (i=1;i<=n;i++)
    {
        in>>dez[i];
    }
    for (i=1;i<=n;i++)
    {
        prob[1][i]=dez[i];
        cate[1][i]=1;
    }
    for (i=2;i<=k;i++)
    {
        for (j=i;j<=n;j++)
        {
            cate[i][j]=cate[i][j-1]+cate[i-1][j-1];
            prob[i][j]=(cate[i][j-1]*prob[i][j-1]/dez[j-1]+cate[i-1][j-1]*prob[i-1][j-1])/(cate[i][j-1]+cate[i-1][j-1]);
            prob[i][j]*=dez[j];
        }
    }
    for (i=k;i<=n;i++)
    {
        total+=cate[k][i];
        acum+=cate[k][i]*prob[k][i];
    }
    acum/=total;
    out<<acum;
    return 0;
}