Sumsets(4sum问题)
来源:互联网 发布:网站美工是做什么的 编辑:程序博客网 时间:2024/05/01 09:36
Sumsets
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8954 Accepted: 2465
Description
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
Sample Output
12no solution
Source
Waterloo local 2001.06.02
这里是4sum问题或者说3sum问题求和(和是变量多了一重循
环)
正常是四重循环,这样做一定会超时的!
这里用的是三重循环,其中第三重循环是用2sum问题实现的!
#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;int a[1005];int main(){ int n,i,j,t,l,r,flag; while(cin>>n&&n) { for(i=0;i<n;i++) { cin>>a[i]; } sort(a,a+n); flag=0; for(i=n-1;i>=0;i--) { for(j=n-1;j>=0;j--) { if(i!=j) { t=a[i]-a[j]; for(l=0,r=j-1;l<r;) { if(a[l]+a[r]==t) { flag=1; break; } else if(a[l]+a[r]>t) { r--; } else { l++; } } if(flag) { break; } } } if(flag) { break; } } if(flag) { cout<<a[i]<<endl; } else { cout<<"no solution"<<endl; } }}
0 0
- Sumsets(4sum问题)
- Poj 2549 Sumsets (3Sum问题)
- POJ 2229 Sumsets(DP计数问题)
- Sumsets(规律题)
- POJ2229 Sumsets (dp)
- Sumsets
- Sumsets
- Sumsets
- Sumsets
- Sumsets
- Sumsets
- uva 10125 Sumsets(搜索)
- poj 2229 Sumsets (DP)
- POJ 2229-Sumsets(DP)
- POJ 2229 Sumsets (dp)
- poj2229--Sumsets(动态规划)
- POJ 2229 Sumsets(dp)
- poj--2549--Sumsets(二分)
- Git SourceTree 冲突解决方案
- 介绍几本专业的书籍,一起学习 关于技术 数学方面的
- DesignBuilder.Software.Ltd.DesignBuilder.v4.2.0.054 1CD建筑能耗动态模拟程序
- HashMap解决hash冲突的方法
- 在MyEclipse上创建SSH项目
- Sumsets(4sum问题)
- /MD 与 /MT、/MTD与/MDD的区别
- 自由软件、开源软件、免费软件、共享软件和商业软件
- KESZ.ConSteel.csJoint.v9.0.004 2CD
- jsp+servlet小练习
- UI基础:UILabel.UIFont
- Kinect v2.0原理介绍之一:硬件结构
- gitHub-初识
- Android MVC 实例