Cod sursa(job #1886870)

Utilizator JokerOsHreceniuc Cristian JokerOs Data 21 februarie 2017 10:54:35
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n, k, x[26];
float v[26];
void citire()
{
    int i;
    f>>n>>k;
    for(i=1; i<=n; i++)
        f>>v[i];
}

int bun(int i)
{
    int j;
    for(j=1; j<i; j++)
        if(x[i]==x[j])
            return 0;
    return 1;
}

int fact(int n)
{
    int l=1;
    for(int q=2; q<=n; q++)
        l=l*q;
    return l;
}

void back()
{
    int i=1;
    float s1=0;
    int factorial=fact(n);
    while(i)
    {

        while(i&&i<=n-1)
        {
            x[i]++;
            if(x[i]>n)
            {
                x[i]=0;
                i--;
            }
            else if(bun(i))
                i++;
        }
        if(i>n-1)
        {
            int j;
            float s=1;
            for(j=1; j<n; j++)
                s=s*v[x[j]];
            s1=s1+(s/factorial);
            i=n-1;
        }
    }
    g<<s1;
}
int main()
{
    citire();
    back();
    return 0;
}