51 nod 1267 4個數和為0

2022-03-05 11:24:21 字數 1313 閱讀 5451

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 <= a[i] <= 10^9)

output

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

5-11

-524

output示例

yes
剛開始使用算出兩個數的和然後儲存在陣列中,將4sum將為2sum,因為在算兩個數的和的時候,可能存在重複的情況,所以用if語句判斷了一下

#include#include

#include

const

int m = 1000005

;using

namespace

std;

typedef pair

p;intmain()

count = 0

;

for( i = 0; i < n; i++)

}for( i = 0; i < count; i++)}}

}printf(

"no\n");

return0;

}

view code

結果提交的時候過了一半的資料,另外的一半被卡住了

ac**

#include #include 

#include

using

namespace

std;

const

int maxn = 1000 + 5;

intn, num[maxn];

intmain()

sort(num+0, num+n);

flag = 0

;

for(int i=0; ii)

for(int j=i+1; jj)

int l = j+1, r = n-1

;

while(l

else

if(tmp > 0

)else}}

}if(flag)

else

}return0;

}

view code

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...