Cod sursa(job #1612775)

Utilizator tothalToth Alexandru tothal Data 25 februarie 2016 00:31:21
Problema Dezastru Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n,k,nr,n_k,cn,ck;
float s;
double p[28],dp[26][26];
float v[30];
int x[30];
void calcnr()
{int aux=1;
    for(int i=1;i<=n;i++)
    {aux*=i;
       if(i==n-k && n-k>0)
         n_k=aux;
        if(i==n)
           cn=aux;
        if(i==k)
        ck=aux;
    }
    nr=cn/ck;
    nr=nr/n_k;
}
void calcs()
{
    for(int i=1;i<n;i++)
    {
                float sp=0;
        for(int j=i+1;j<=n;j++)
        {
            sp+=(float)v[j];
        }
        sp*=(float)v[i];
        s+=(float)sp;
    }
}
int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>v[i];
    calcnr();
    for(int i=0;i<=n;i++)
        dp[i][0]=1;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=k;j++)
            dp[i][j]=v[i]*dp[i-1][j-1]+dp[i-1][j];
    fout<<setprecision(6)<<(float)dp[n][k]/nr;
}