Cod sursa(job #734828)

Utilizator IliesiDanielDaniel IliesiDaniel Data 14 aprilie 2012 22:22:52
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("dezastru.in");
ofstream g("dezastru.out");

float v[30],S;
int n,k,st[30],m=1;

int valid(int a)
{
	int i;
	for(i=1; i<a; i++)
		if(st[i]==st[a])
			return 0;
	return 1;
}

void back(int a)
{
	int i,j;
	float pr;
	for(i=1; i<=n; i++)
	{
		st[a]=i;
		if(valid(a))		if(a==k)	{
											pr=1;

											for(j=1; j<=a; j++)
												pr*=v[st[j]];

											S+=pr/m;
										}
								else 	back(a+1);
	}
}

int main()
{
	int i;
	f>>n>>k;
	for(i=1; i<=n; i++)
	{
		m*=i;
		f>>v[i];
	}
	f.close();
	back(1);
	g<<S;
	g.close();
	return 0;
}