Pagini recente » Cod sursa (job #2620855) | Cod sursa (job #2616427) | Cod sursa (job #81103) | Cod sursa (job #84137) | Cod sursa (job #1908907)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int x[30];
float y[30];
int nudesc(int n)
{
int i;
for(i=1;i<n;i++)
if(x[i]<x[i+1])
return 1;
return 0;
}
void ogl(int q, int n)
{
int i,j=1;
for(i=q;i<=(n+q)/2;i++)
{
swap(x[i],x[n-j+1]);
swap(y[i],y[n-j+1]);
j++;
}
}
int main()
{
int n,k,i,q,r,t,j,nr=0;
float rez=0,p=1;
f>>n>>k;
for(i=1;i<=n;i++)
{
x[i]=i;
f>>y[i];
}
for(j=1;j<=k;j++)
p=p*y[j];
rez=rez+p;
nr++;
while(nudesc(n))
{
i=n;
while(x[i]<x[i-1])
{
i--;
}
q=i;
r=i-1;
t=i-1;
while(x[r]<x[i])
i++;
i--;
swap(x[r],x[i]);
swap(y[t],y[i]);
ogl(q,n);
p=1;
for(j=1;j<=k;j++)
p=p*y[j];
rez=rez+p;
nr++;
}
g<<rez/nr;
return 0;
}