Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52790 | HSW | 敏捷排列 | C++ | 解答错误 | 0 | 0 MS | 256 KB | 657 | 2022-07-20 11:57:51 |
#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; }