Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
52948 AK2022071355 敏捷排列 C++ 解答错误 0 0 MS 252 KB 751 2022-07-20 12:21:52

Tests(0/10):


#include <bits/stdc++.h> using namespace std; long long ans; bool flag; long long Inv[21] = {1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,20922789888000,355687428096000,6402373705728000,121645100408832000,2432902008176640000}; int main() { int n,a,b; scanf("%d%d%d",&n,&a,&b); int Array[n + 1]; for(int i = 1;i <= n;i++) scanf("%d",&Array[i]),flag = (Array[i] != i ? false : true); if(flag) puts("0.0000000000"); else { for(int i = 1;i <= n;i++) { if(Array[i] == i) continue; for(int j = i + 1;j <= n;j++) if(Array[j] == i) swap(Array[i],Array[j]), ans++; } printf("%d",min(ans * a,Inv[n] * b)); puts(".0000000000"); } return 0; }


测评信息: