Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52828 | jr_zlw | 敏捷排列 | C++ | 解答错误 | 40 | 0 MS | 176 KB | 496 | 2022-07-20 12:02:06 |
#include<cstdio> #define rep(a,b,c) for(int c(a);c<=(b);++c) inline int read() { int res=0;char ch=getchar();while(ch<'0'||ch>'9')ch=getchar(); while(ch<='9'&&ch>='0')res=res*10+(ch^48),ch=getchar();return res; } const int N=25;int a[N],ans;bool vis[N]; int main() { int n=read(),A=read(),B=read(); rep(1,n,i)a[i]=read(); rep(1,n,i)if(!vis[i]) { int x=i,c=0;vis[x]=true; do vis[x]=true,++c,x=a[x];while(!vis[x]); ans+=c-1; } printf("%.20Lf",(long double)A*ans); }