Pagini recente » Cod sursa (job #1548555) | Cod sursa (job #1966140) | Cod sursa (job #2959790) | Cod sursa (job #199889) | Cod sursa (job #37582)
Cod sursa(job #37582)
#include <stdio.h>
#define MAX 30
int cont(int k, int *x)
{
int i;
for(i=0; i<k; i++)
if (x[k]==x[i]) return 0;
return 1;
}
int main()
{
int n, k, m, i, x[MAX];
float p[MAX], pc, pt, nr;
FILE *f;
f=fopen("dezastru.in","rt");
fscanf(f,"%i %i", &n, &m);
for (i=0; i<n; i++) fscanf(f,"%f", p+i);
fclose(f);
pt=0;
nr=0;
k=0;
x[k]=-1;
do
{
while (x[k]<n-1)
{
x[k]++;
if (cont(k, x))
if (k==n-1)
{/* avem un aranjament :) */
nr++;
pc=1;
for (i=0; i<m; i++)
{
pc*=p[x[i]];
}
pt+=pc;
}
else
{
k++;
x[k]=-1;
}
}
k--;
}
while (k>=0);
fopen("dezastru.out","wt");
fprintf(f,"%4.6f", pt/nr);
fclose(f);
return 0;
}