Cod sursa(job #605623)

Utilizator predator5047Butiu Alexandru Octavian predator5047 Data 1 august 2011 13:49:13
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <iomanip>
using namespace std;
long double v[40],st[40],mem[40];
short int k,n,n2;
int nrper;
void citire(); void back(int niv);
void memrez();

int main()
{
    citire();
    back(1);
    long double fin=0;
    for(int i=1;i<=n2;i++)
    fin+=mem[i]/nrper;

    ofstream fout("dezastru.out");

    fout<<fixed<<setprecision(6)<<fin;

    fout.close();

    return 0;
}
void back(int niv)
{
    for(int i=1;i<=n;i++)
    {
        st[niv]=v[i];
        if((st[niv-1]<st[niv] || st[niv-1]>st[niv]) &&st[niv-1]!=st[niv])
        {
            if(niv==k)
            {
                memrez();
            }
            else
            back(niv+1);
        }

    }
}
void memrez()
{
    long double p=1;

    for(int i=1 ; i<=k ; i++)
    {
        p*=st[i];
    }

    n2++;
    mem[n2]=p;
    nrper++;
}




void citire()
{
    ifstream fin("dezastru.in");
    fin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
    }

    fin.close();
}