学到一种排序的小的优化技巧。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int n,s;
int a[20002];
int i,num,temp,j;
while(scanf("%d%d",&n,&s)!=EOF)
{
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
qsort(a,n,sizeof(int),cmp);
num=0;temp=n;
for(i=0;i<temp;i++)
{
for(j=i+1;j<temp;j++)
{
if(a[i]+a[j]<=s)
{
num++;
}
else
{
temp=j;break;
}
}
}
printf("%d\n",num);
}
return 0;
}