Sumsets Uva10125 poj
来源:互联网 发布:俄罗斯共青城现状 知乎 编辑:程序博客网 时间:2024/05/01 19:10
//3sum问题
#include <iostream>#include <cstdio>#include <cstdlib>#include <cmath>#include <queue>#include <algorithm>#include <vector>#include <cstring>#include <stack>#include <cctype>#include <utility> #include <map>#include <string> #include <climits> #include <set>#include <string> #include <sstream>#include <utility>#include <ctime>using std::priority_queue;using std::vector;using std::swap;using std::stack;using std::sort;using std::max;using std::min;using std::pair;using std::map;using std::string;using std::cin;using std::cout;using std::set;using std::queue;using std::string;using std::istringstream;using std::make_pair;using std::greater;const int MAXN(1010);int arr[MAXN];int main(){int n;while(scanf("%d", &n), n){for(int i = 1; i <= n; ++i)scanf("%d", arr+i);sort(arr+1, arr+1+n);int count = 0;for(int i = 1; i <= n; ++i)if(i == 1 || arr[i] != arr[i-1])arr[++count] = arr[i];int ans;try{int tn = n-2;for(int i = n; i >= 1; --i){ans = arr[i];for(int j = 1; j <= tn; ++j)if(j != i){int l = j+1, r = n;while(l < r){if(l == i){++l;continue;}if(r == i){--r;continue;}int temp = arr[j]+arr[l]+arr[r];if(temp == ans)throw true;if(temp > ans)--r;else++l;}}}printf("no solution\n");}catch(bool){printf("%d\n", ans);}}return 0;}
- Sumsets Uva10125 poj
- uva10125 - Sumsets
- uva10125 Sumsets
- [哈希]Sumsets uva10125
- UVa10125--Sumsets(折半搜索)
- Uva10125/POJ2549——Sumsets(中途相遇法,hash)
- uva10125
- UVA10125
- 【POJ】Sumsets
- Sumsets POJ
- Sumsets POJ
- POJ 2229 Sumsets
- poj 2229 Sumsets
- poj 2549 Sumsets
- poj 2549 Sumsets
- [POJ] 2229 Sumsets
- sumsets poj 2229
- POJ 2549 Sumsets
- SQL基础2
- Java高新技术(二)之类加载机制和反射
- linux学习
- VirtualBox 虚拟机中安装 Ubuntu 12.04
- Android eclipse中程序调试
- Sumsets Uva10125 poj
- Integer笔记
- CF 253A(最大间隔相异队列)
- Windows Server 2003中的磁盘管理
- jsp注意点
- ubuntu
- x264_mb_predict_mv_16x16 函数分析
- android 学习 实现切换动画,
- 静态链接库与动态链接库LINUX_C