1001 陣列中和等於K的數對

2022-03-27 14:25:15 字數 1439 閱讀 7601

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

給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k = 8,陣列a:,所有和等於8的數對包括(-1,9),(0,8),(2,6),(3,5)。

input

第1行:用空格隔開的2個數,k n,n為a陣列的長度。(2 <= n <= 50000,-10^9 <= k <= 10^9)

第2 - n + 1行:a陣列的n個元素。(-10^9 <= a[i] <= 10^9)

output

第1 - m行:每行2個數,要求較小的數在前面,並且這m個數對按照較小的數公升序排列。

如果不存在任何一組解則輸出:no solution。

input示例

8 9-16

5342

908

output示例

-1 9

0 82 6

3 5

今晚唯一一道沒有一發a的題目,因為i跟t的變化問題也是調了許久。

附ac**:

1 #include2 #include3 #include4

using

namespace

std;56

const

int inf=1

<<30;7

8int a[50010];9

10int

main()

16 sort(a,a+n);

17/*

for(int i=0;i18

cout<*/

19int t=n-1,i=0,ans=0;20

while(1)26

else

if(a[i]+a[t]>k)

29else

if(a[i]+a[t]32if(i>=t)

33break;34

}35if(ans==0)38

return0;

39 }

附全場最佳:

1 #include 2 #include 3

using

namespace

std;45

const

int n = 50005;6

7int

k, n;

8int

a[n];910

intmain()

16 sort(a, a +n);

17bool flag = false

;18 i = 0; j = n - 1;19

while (i 22else

if (n < k)

23else 24}

25if (!flag)

26 }

1001 陣列中和等於K的數對

1001 陣列中和等於k的數對 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k 8,陣列a 所有和等於8的數對包括 1,9 0,8 2,6 3,5 input 第1...

1001 陣列中和等於K的數對

給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k 8,陣列a 所有和等於8的數對包括 1,9 0,8 2,6 3,5 input 第1行 用空格隔開的2個數,k n,n為a陣列的長度。2 n 50000,10 9 k 10 9 第2 n 1行 a陣...

51nod1001 陣列中和等於k的數對

1001 陣列中和等於k的數對 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k 8,陣列a 所有和等於8的數對包括 1,9 0,8 2,6 3,5 input 第1...