提交时间:2022-07-20 11:57:51

运行 ID: 52790

#include <cstdio> #include <iostream> using namespace std; int n,a,b,k; int s[20005]; int c[20005]; double f[30][2]; double ans; long long jc[30]; long long res; int main(){ scanf("%d%d%d",&n,&a,&b); int i; long long ax,ay; for(i=1;i<=n;i++){ scanf("%d",&s[i]); if(s[i]!=i) k++; c[s[i]]=i; } if(k==0){ printf("%.8lf",k); return 0; } for(i=1;i<=n;i++){ if(s[i]!=i){ swap(s[i],s[c[i]]); ans+=1; } } res=1;jc[1]=1; for(i=2;i<=n;i++) jc[i]=jc[i-1]*i,res*=i; if(b>n*a){ printf("%.8lf\n",ans*a); return 0; } if(res*b<a){ printf("%.8lf\n",(double)res); return 0; } return 0; }