Cod sursa(job #248074)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 24 ianuarie 2009 19:49:44
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<algorithm>
using namespace std;
int n,k,x,sol[101];
float s,a[26];
/*int check(int val,int m){
    int i;
	if(sol[m-1]>val)
		return 0;
	for(i=1; i<m; ++i)
		if(sol[i]==val)
            return 0;
    return 1;}*/
void back(int m){
	int i;
	float p;
    if(m==k+1){
        p=1;
		for(i=1; i<m; ++i)
			p*=a[sol[i]];
        s+=p;
        ++x;}
    else
        for(i=1; i<=n; ++i)
            if(i>sol[m-1]){
                sol[m]=i;
                back(m+1);}}
void solve(){
    int i;
    scanf("%d%d",&n,&k);
    for(i=1; i<=n; ++i)
		scanf("%f",&a[i]);
	sort(a+1,a+n+1);
    back(1);
    printf("%f",s/x);}
int main(){
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    solve();
    return 0;}