Nu aveti permisiuni pentru a descarca fisierul grader_test11.in
Cod sursa(job #605623)
| Utilizator | 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();
}
