uva 10125 Sumsets(搜索)
来源:互联网 发布:centos无线网络配置 编辑:程序博客网 时间:2024/05/22 03:44
Sumsets
Given S, a set of integers, find the largest d such that a + b + c = d where a, b, c, and d are distinct elements of S.Input
Several S, each consisting of a line containing an integer 1 <= n <= 1000 indicating the number of elements in S, followed by the elements of S, one per line. Each element of S is a distinct integer between -536870912 and +536870911 inclusive. The last line of input contains 0.Output
For each S, a single line containing d, or a single line containing "no solution".Sample Input
52 3 5 7 1252 16 64 256 10240
Output for Sample Input
12no solution
题目大意:给出n个数,找出n个数中满足a + b + c = d,的组合,输出d,不存在输出”no soluution",(注意d要求最大)
解题思路:首先将n个数排序,从最大的数开始遍历,,而a也从最大的开始遍历,然后求的d - a的值,将b 和 c分别从最大和最小的地方遍历,知道b < c 为止,如果b + c > d - a ,b应该向小一点的数值移动,反之,c向大一点的数值移动。等于的时候即是满足的情况。
#include <stdio.h>#include <algorithm>using namespace std;const int N = 1005;int answer, a, b, c, d, n;int num[N];bool find() { for (a = n - 1; a >= 0; a--) {for (b = n - 1; b > 0; b--) { if (a == b)continue; answer = num[a] - num[b]; for (c = 0, d = b - 1; c < d; ) {if (num[c] + num[d] == answer) return true;else if (num[c] + num[d] < answer) c++;else d--; }} } return false;}int main() { while (scanf("%d",&n) == 1 && n) {for (int i = 0; i < n; i++) scanf("%d", &num[i]);sort(num, num + n);if (find()) printf("%d\n", num[a]);else printf("no solution\n"); } return 0;}
- uva 10125 Sumsets(搜索)
- uva 10125 - Sumsets(技巧性枚举)
- UVA 10125 - Sumsets(POJ 2549) hash
- UVA - 10125 Sumsets(二分查找)
- UVA - 10125 - Sumsets (暴力枚举 + STL)
- UVA - 10125 Sumsets (预处理 + 二分)
- UVa 10125 - Sumsets
- uva 10125 - Sumsets
- uva 10125 Sumsets
- UVa 10125 - Sumsets
- uva 10125 - Sumsets
- UVA 10125 Sumsets
- UVA 10125 - Sumsets
- UVa 10125-Sumsets
- UVa:10125 Sumsets
- uva 10125 Sumsets
- UVA 10125 Sumsets
- UVa 10125 - Sumsets
- 老码农教你学英语:补充一些英语学习素材
- Winsock网络编程快速入门
- 仿google suggest
- 关于向量积和叉积的解释
- 内核中接收网络帧的处理(2层)
- uva 10125 Sumsets(搜索)
- Activity实现欢迎界面并添加动画切换效果
- GSL读取向量数据存储文件
- 2013年8月15号 随想 絮叨
- 我为什么不要应届毕业生
- 设计模式--外观模式
- 深度理解依赖注入(Dependence Injection)
- R-Dcost
- 互联网协议入门