题目描述:
小明有n个长度不一的小木棍,这些木棍的长度都是正整数。小明的父亲想和小明做一个游戏。他规定一个整数长度L,让小明闭着眼睛从n个木棍中随便拿出两个。如果两个木棍的长度总和小于等于L,则小明胜,否则小明的父亲胜。小明想知道他胜出的概率究竟有多大。
输入格式:
输入包含两行。第一行为两个整数n和L,其中n和L都不超过100000。第二行包含n个整数,分别为n个木棍的长度,长度在long long以内。
输出格式:
输出包含一个实数,小明胜出的概率,保留两位小数。
样例输入:
4 5 1 2 3 4
样例输出:
0.67
时间限制: 1000ms
空间限制: 128MB
代码如下:
#include<cstdio>
#include<algorithm>
using namespace std;
int n,l,a[100001]={};
double s=0,s1=0;
int main(){
scanf("%d %d",&n,&l);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
s1+=i;
}
sort(a,a+n);
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(a[i]+a[j]<=l){
s++;
}else{
break;
}
}
}
s1=s/s1;
printf("%.2lf",s1);
return 0;
}