1090 3個數和為0

2022-02-19 06:18:52 字數 1133 閱讀 3649

1090 3個數和為0

基準時間限制:1 秒 空間限制:131072 kb 分值: 5 難度:1級演算法題

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

input

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

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

output

如果沒有符合條件的組合,輸出no solution。

如果有多個,按照3個數中最小的數從小到大排序,如果最小的數相等則繼續按照第二小的數排序。每行3個數,中間用空格分隔,並且這3個數按照從小到大的順序排列。

input示例

7

-3-2-10123

output示例

-3 0 3

-3 1 2

-2 -1 3

-2 0 2

-1 0 1

題目不錯,可惜我有點傻,一開始準備暴力,結果寫到一半發現行不通,於是轉為二分,

然而二分出現了乙個很小的失誤,然後連改了好幾次,才發現.

1 #include 2

#define n 1005

3using

namespace

std;

4int

k[n],n;

5bool find(int

a)else

if(k[mid]

17return

false;18

}19intmain()

24 sort(k,k+n);

25bool prime=true;26

for(int i=0;i)

27for(int j=i+1;j)35}

36if

(prime)

37 printf("

no solution\n");

38return0;

39 }

1090 3個數和為0

1090 3個數和為0 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個長度為n的無序陣列,陣列中的元素為整數,有正有負包括0,並互不相等。從中找出所有和 0的3個數的組合。如果沒有這樣的組合,輸出no solution。如果有多個,按照3個數中最小的數從小...

1090 3個數和為0

1090 3個數和為0 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 收藏 關注 給出乙個長度為n的無序陣列,陣列中的元素為整數,有正有負包括0,並互不相等。從中找出所有和 0的3個數的組合。如果沒有這樣的組合,輸出no solution。如果有多個,按照3個數中...

1090 3個數和為0

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