Pagini recente » Cod sursa (job #451246) | Cod sursa (job #2184967) | Cod sursa (job #2029192) | Cod sursa (job #1999846) | Cod sursa (job #394042)
Cod sursa(job #394042)
#include <fstream>
using namespace std;
ifstream in ( "dezastru.in" );
ofstream out ( "dezastru.out" );
int N, K, sol [ 25 ];
double suma;
double sumd, v [ 25 ];
void citire ()
{
in >> N >> K;
for ( int i = 1; i <= N; ++i )
in >> v [ i ];
}
void prelucrare ()
{
double sc = 1;
for ( int i = 1; i <= K ; ++i )
sc *= v [ sol [ i ] ];
suma += sc;
}
void bkt ( int p )
{
if ( p == K + 1 )
{
prelucrare ();
return;
}
for ( int i = sol [ p-1 ] + 1; i <= N; ++i )
{
sol [ p ] = i;
bkt ( p + 1 );
}
}
long long fact ( int x )
{
long long de_returnat = 1;
for ( int i = 2; i <= x; ++i )
de_returnat *= i;
return de_returnat;
}
int main ()
{
citire ();
bkt ( 1 );
suma *= fact ( K );
sumd = suma / fact ( N ) ;
out << sumd;
return 0;
}