您的位置:首页 > 其它

POJ-3663-Costume Party

2014-08-04 08:37 337 查看
Costume Party

Time Limit: 1000MS  Memory Limit: 65536K

Total Submissions: 11237  Accepted: 4512

Description

It's Halloween! Farmer John is taking the cows to a costume party, but unfortunately he only has one costume. The costume fits precisely two cows with a length of S (1 ≤ S ≤ 1,000,000). FJ has N cows (2 ≤ N ≤ 20,000) conveniently numbered 1..N; cow i has
length Li (1 ≤ Li ≤ 1,000,000). Two cows can fit into the costume if the sum of their lengths is no greater than the length of the costume. FJ wants to know how many pairs of two distinct cows will fit into the costume.

Input

* Line 1: Two space-separated integers: N and S

* Lines 2..N+1: Line i+1 contains a single integer: Li

Output

* Line 1: A single integer representing the number of pairs of cows FJ can choose. Note that the order of the two cows does not matter.

Sample Input

4 6

3

5

2

1

Sample Output

4

Source

USACO 2008 January Bronze

 

 

前两天比赛的题,脑子抽筋没优化超时了,今天看看,真简单啊,罪过罪过~~~

题意:有一组数组N,要求这N个数两两组合能拼凑出多少对和(Ni+Nj)小于或等于M的组合

AC代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define MAXN 20020
int a[MAXN];
int main()
{
int i,j,n,m,sum,temp;
while(scanf("%d %d",&n,&m)!=EOF)
{
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
temp=n;
sum=0;
for(i=0;i<temp;i++)
for(j=i+1;j<temp;j++)
{
if(a[i]+a[j]<=m)
{
sum++;
}
else
{
temp=j;//优化,后面的怎么加都大于长度,就没有必要纳入每次的计算了
break;
}
}
printf("%d",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: