您的位置:首页 > 其它

poj 3663 Costume Party 【简单搜索】

2014-08-02 21:41 501 查看
题目大意:给你两个个数据s, n,下面输入n组数据代表牛的距离,如果两头牛的之间距离和小于等于s 就算是一对, 求一共有多少对?

策略:直接遍历,肯定TL, 先用一个数组保存比s小的,快排一下,最后搜索一下。

题目链接 http://poj.org/problem?id=3663
代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int s[1000005];
int main()
{
	int n, m, i, j;
	while(scanf("%d%d", &n, &m) == 2){
		int a, k = 0;
		for(i = 0; i < n; i ++){
			scanf("%d", &a);
			if(a < m)
			s[k++] = a;
		}
		int ans = 0;
		int flag = 0;
		sort(s, s+k);
		for(i = 0; i < k; i ++){
			for(j = i+1; j< k; j ++){
				if(s[i]+s[j] <= m){
					++ans;
				}
				else{
					break;
				}
			}
		}
		printf("%d\n", ans);
		
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: