Cod sursa(job #235458)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 23 decembrie 2008 23:34:09
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
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(check(i,m)){
                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]);
    back(1);
    printf("%f",s/x);}
int main(){
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    solve();
    return 0;}