Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
52963 lgh 敏捷排列 C++ 解答错误 0 0 MS 248 KB 705 2022-07-20 12:25:12

Tests(0/10):


#include <bits/stdc++.h> using namespace std; double n,a,b,ans; int x[1010],cnt[21]= {0,1},m; bool Check() { if(b==0 || a==0) return 1; bool flag=1; for(int i=1; i<=m; i++) if(x[i]!=i) { flag=0; break; } if(flag) return 1; } int main() { scanf("%lf%lf%lf",&n,&a,&b); m=(int)n; for(int i=2; i<=n; i++) cnt[i]=cnt[i-1]*i; for(int i=1; i<=m; i++) scanf("%d",&x[i]); if(n*a<b) printf("%.12lf\n",n*a); if(cnt[m]*b<a*n/2) printf("%.12lf\n",cnt[m]*b); else { if(Check()) puts("0"); else printf("%.12lf\n",min((double)((n*(n-1)*1.0+n/2.0)*a/2.0),(double)((1.0+cnt[m])*b/2.0))); } return 0; } //a期望:n/2-n*(n-1) //b期望:1-n!


测评信息: