51nod T1267 4個數和為0

2022-04-10 20:46:57 字數 1037 閱讀 7597

題目描述

給出n個整數,你來判斷一下是否能夠選出4個數,他們的和為0,可以則輸出"yes",否則輸出"no"。

input

第1行,1個數n,n為陣列的長度(4 <= n <= 1000)

第2 - n + 1行:a[i](-10^9 <= a[i] <= 10^9)

output

如果可以選出4個數,使得他們的和為0,則輸出"yes",否則輸出"no"。
input示例

5-11

-524

output示例

yes

1 #include 2 #include 3

4using

namespace

std;56

int n,a[1050

],cnt;

7int

if_ok;89

struct

node_num

10num[1000*1000+5

];13

14bool

cmp(node_num a,node_num b)

1518

19int

main()

20

31 sort(num+1,num+cnt+1

,cmp);

32int l=1,r=cnt;

33while(l3438

if(sum<0) l++;

39else r--;

40/*

int midd=(l+r)/2;

41if(num[l].tot+num[midd].tot<0) l=midd+1;

42if(num[r].tot+num[midd].tot>0) r=midd-1;

43*/}44

if(if_ok) cout<<"

yes";45

else cout<<"no"

;46return0;

47 }

51nod 1267 4個數和為0

思路 先n 2預處理出所有兩兩的組合,那麼就變成要找a b 0的問題了,那麼排序o n 去找就可以了 includeusing namespace std define ll long long const int maxn 1005 1005 struct node node maxn bool ...

51nod1267 4個數和為0

1267 4個數和為0 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 給出n個整數,你來判斷一下是否能夠選出4個數,他們的和為0,可以則輸出 yes 否則輸出 no input 第1行,1個數n,n為陣列的長度 4 n 1000 第2 n 1行 a i 10 9...

51 nod 1267 4個數和為0

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