Cod sursa(job #1017447)

Utilizator alexkingMihai Alexandru alexking Data 27 octombrie 2013 19:31:50
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <cstring>
#include <fstream>
#include <iomanip>
using namespace std;
int st[100],n,k,i,p;
float v[10],t,m=0;
ifstream f("dezastru.in");
ofstream g("dezastru.out");


void af(){
	float m1=1;
for(i=1;i<=k-1;i++)
m1=m1*v[st[i]];
m=m+(m1/t);}


int vld(int k){
for(i=1;i<=k-1;i++)
if (st[k]==st[i])
return 0;
return 1;}


int main(){
 f>>n;
 f>>p;
float t1=1,t2=1;
for(i=1;i<=n;i++)
	t1=t1*i;
for(i=1;i<=n-p;i++)
	t2=t2*i;
t=t1/t2;
for(i=1;i<=n;i++)
	f>>v[i];
 k=1;
 st[k]=0;
 while(k>0){
 if(k==p+1){
 af();
 k--;}
 if(st[k]<n){
 st[k]++;
 if(vld(k)){
 k++;
 st[k]=0;}
}
else
k--;
 }
g<<m<<setprecision(6);
}