4 個數為0 二分

2021-10-09 13:59:10 字數 774 閱讀 2382

vj鏈結

給出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 input5-1

1-524

sample output

yes

可以先把陣列排序,然後雙重迴圈先找兩個數,剩下的兩個數使用二分來查詢。效率更高。
#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

using

namespace std;

const

int maxn =

1e3+10;

int a[maxn]

;int n;

intmain()

else

if(a[l]

+ a[r]

> sum)

else l++;}

}}printf

("no\n");

return0;

}

加油吧!

4個數和為0(二分)

給出n個整數,你來判斷一下是否能夠選出4個數,他們的和為0,可以則輸出 yes 否則輸出 no input 第1行,1個數n,n為陣列的長度 4 n 1000 第2 n 1行 aii 10 9 aii 10 9 output 如果可以選出4個數,使得他們的和為0,則輸出 yes 否則輸出 no sa...

1090 3個數和為0 (二分查詢)

給出乙個長度為n的無序陣列,陣列中的元素為整數,有正有負包括0,並互不相等。從中找出所有和 0的3個數的組合。如果沒有這樣的組合,輸出no solution。如果有多個,按照3個數中最小的數從小到大排序,如果最小的數相等則按照第二小的數排序。input 第1行,1個數n,n為陣列的長度 0 n 10...

四個數和為0(二分

題目 給出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 s...