Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
52712 AK2022071346 敏捷排列 C++ 解答错误 40 0 MS 248 KB 556 2022-07-20 11:50:59

Tests(4/10):


#include<cstdio> #include<iostream> using namespace std; int a,b,n,p[25]; double ans1,ans2,ans3,q[25]; int main() { scanf("%d%d%d",&n,&a,&b); for(int i=1;i<=n;i++)scanf("%d",&p[i]); for(int i=1;i<=n;i++) { while(p[i]!=i) { ans1+=a; swap(p[i],p[p[i]]); } } if(n>=8)ans2=114514; else { ans2=b; for(int i=1;i<=n;i++)ans2*=i; } q[1]=0; for(int i=2;i<=n;i++) { q[i]=q[i-1]+((1.0*(i-1))/(1.0*i)); } ans3=q[n]*a+b; printf("%.15lf",ans1<ans2?(ans1<ans3?ans1:ans3):(ans2<ans3?ans2:ans3)); return 0; }


测评信息: