Cod sursa(job #1023241)

Utilizator GeorgeCodreanuCodreanu George GeorgeCodreanu Data 6 noiembrie 2013 17:50:57
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
# include <fstream>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int k, n, p,s[26],y;
double x, pb[26];
int as();
bool ev();
int sol();
void prod();
int main()
{
    k = 1;s[k]=0;
    f >> n >> p;
    for (int i = 1; i <= n; i++)
        f >> pb[i];


    while(k>0)
    {
        while(as())
        {
            s[k]++;
            if(ev()){
                if(sol())prod();
                else s[++k]=0;
            }

        }
        k--;
    }
    g<<x/y;
    f.close();
    g.close();
    return 0;
}

int as()
{
    if(s[k] < n) return 1;
    return 0;
}
bool ev()
{
    for(int i=1;i<k;i++)
        if(s[i]==s[k])
           return 0;
    return 1;
}
int sol()
{
    if (k == p) return 1;
    return 0;
}

void prod()
{
    double r=1;
    for (int i = 1; i <= p;i++)
          r*=pb[s[i]];
    x+=r;
    y++;
}