1090 3個數和為0

2021-08-09 08:50:18 字數 1162 閱讀 7680

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 #include 3 #include 4

5const

int maxn=1010;6

7intn;8

9int

a[maxn];

1011

bool

flag;

1213 inline void read(int&x)

1920 inline bool check(int

x) 27

if(a[r]==x) return

true;28

return

false;29

}3031int

hh() 43}

44if(!flag) printf("

no solution\n");

45return0;

46}4748

int sb=hh();

49int main(int argc,char**argv)

**

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

1090 3個數和為0

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