Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52778 | wssdr | 敏捷排列 | C++ | 解答错误 | 40 | 0 MS | 244 KB | 420 | 2022-07-20 11:53:31 |
#include<bits/stdc++.h> using namespace std; int n,a,b,x[25],ans1; long long ans2(1); int main(){ scanf("%d%d%d",&n,&a,&b); for(int i(1);i<=n;++i) scanf("%d",x+i); for(int k(1);k<=n;++k) for(int i(1);i<=n;++i) if(x[i]^i){ swap(x[i],x[x[i]]); ++ans1;break; } for(int i(2);i<=n;++i) ans2*=i; printf("%lld.00000000000000000000\n",(b>n*a)?1ll*ans1*a:min(1ll*ans1*a,ans2*b)); return 0; }