记录编号 | 387465 | 评测结果 | AAAAAAAAA | ||
---|---|---|---|---|---|
题目名称 | [SYZOI Round1]组合数 | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | C++ | 运行时间 | 0.050 s | ||
提交时间 | 2017-03-26 19:30:42 | 内存使用 | 0.00 MiB | ||
#include<cstdio> #include<iostream> #include<cctype> #define ll long long #define gys mylove using namespace std; int n,a[46],sum=0,l,r; ll dp[4501]; inline void in(int &x){ x=0;int f=1;char t=getchar(); while(!isdigit(t)){if(t=='-')f=-1;t=getchar();} while(isdigit(t)){x=x*10+t-48;t=getchar();} x*=f; } inline void dpwork(int a,int sum){ for(int i=sum;i>=0;i--) if(dp[i]!=0) dp[i+a]+=dp[i]; } inline int work(){ dp[0]=1; in(n); for(int i=1;i<=n;i++) { in(a[i]); dpwork(a[i],sum); sum+=a[i]; } in(l);in(r); } inline void output(){ float ans=0,p=0; for(int i=l;i<=r;i++) ans+=dp[i]; for(int i=0;i<=sum;i++) p+=dp[i]; printf("%.4f",ans/p); } int Main(){ freopen("conbination.in","r",stdin); freopen("conbination.out","w",stdout); work(); output(); return 0; } int main(){;} int gys=Main();