Pagini recente » Cod sursa (job #1050136) | Cod sursa (job #2941721) | Cod sursa (job #183510) | Cod sursa (job #594282) | Cod sursa (job #1151157)
#include <fstream>
#include <iomanip>
using namespace std;
int n,k,i,j,poz,p[30];
float a[30],prod=1,minim,aux,sum=0;
int main()
{
ifstream f("dezastru.in");
ofstream g("dezastru.out");
f>>n>>k;
for(i=1;i<=n;i++)
{f>>a[i];p[i]=i;
if(i<=k) prod*=a[i];}
sum+=(prod/6);
do
{
poz=n;prod=1;
while(p[poz]<p[poz-1] && poz>1) poz--;
poz--;
if(poz)
{minim=p[poz+1];j=poz+1;
for(i=poz+2;i<=n;i++)
if(p[i]<minim && p[i]>p[poz]) minim=p[i],j=i;
aux=p[poz];p[poz]=p[j];p[j]=aux;
aux=a[poz];a[poz]=a[j];a[j]=aux;
for(i=1;i<=(n-poz)/2;i++) aux=p[poz+i],p[poz+i]=p[n-i+1],p[n-i+1]=aux,aux=a[poz+i],a[poz+i]=a[n-i+1],a[n-i+1]=aux;
for(i=1;i<=k;i++)
prod*=a[i];
sum+=(prod/6);}
}while(poz);
g<<setprecision(7)<<sum;
return 0;
}