Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52798 | AK2022071333 | 敏捷排列 | C++ | 解答错误 | 40 | 0 MS | 252 KB | 774 | 2022-07-20 11:58:32 |
#include <bits/stdc++.h> using namespace std; inline int read() { int x=0; char c=getchar(); for(; c<'0' || c>'9'; c=getchar()); for(; c<='9' && c>='0'; c=getchar()) x=(x<<3)+(x<<1)+c-'0'; return x; } int main() { int n,a,b; n=read(),a=read(),b=read(); int an[n+1]; for(int i=1; i<=n; i++) { an[i]=read(); } double ans1= 1; for(int i=2; i<=n; i++) { ans1*=i; } ans1*=b; double ans2=0; for(int i=1; i<=n; i++) { int min=an[i],minn=i; for(int j=i+1; j<=n; j++) { if(an[j]<min) { min=an[j]; minn=j; } } if(an[i]>min) { swap(an[i],an[minn]); ans2+=a; } } printf("%.9lf",min(ans1,ans2)); return 0; }