4個數和為0
阿新 • • 發佈:2018-12-23
給出N個整數,你來判斷一下是否能夠選出4個數,他們的和為0,可以則輸出"Yes",否則輸出"No"。
Input
第1行,1個數N,N為陣列的長度(4 <= N <= 1000)
第2 - N + 1行:Ai(-10^9 <= Ai<= 10^9)
Output
如果可以選出4個數,使得他們的和為0,則輸出"Yes",否則輸出"No"。
Sample Input
5
-1
1
-5
2
4
Sample Output
Yes
#include <iostream> #include <algorithm> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <string> #include <queue> #include <map> using namespace std; typedef long long ll; #define inf 0x3f3f3f3f const int AA=4e5+7; map<string,ll> M; map<string,string> N; ll a[101010]; int main() { ll i,j,sum=0,n,l,r; cin>>n; for(i=0;i<n;i++) cin>>a[i]; sort(a,a+n); for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { sum=-(a[i]+a[j]); l=j+1;r=n-1; while(l<r) { if(a[l]+a[r]>sum) r--; else if(a[l]+a[r]==sum) { cout<<"Yes"<<endl; return 0; } else l++; } } } cout<<"No"<<endl; return 0; }