07 和為給定數

2021-10-02 09:43:41 字數 924 閱讀 2229

總時間限制: 1000ms 記憶體限制: 65536kb

描述給出若干個整數,詢問其中是否有一對數的和等於給定的數。

輸入共三行:

第一行是整數n(0 < n <= 100,000),表示有n個整數。

第二行是n個整數。整數的範圍是在0到10^8之間。

第三行是乙個整數m(0 <= m <= 2^30),表示需要得到的和。

輸出若存在和為m的數對,輸出兩個整數,小的在前,大的在後,中間用單個空格隔開。若有多個數對滿足條件,選擇數對中較小的數更小的。若找不到符合要求的數對,輸出一行no。

樣例輸入

42 5 1 4

6樣例輸出

1 5

#include

#include

#include

#include

//排序、二分查詢演算法使用的標頭檔案

using

namespace std;

intmain()

long

long m;

cin>>m;

sort

(a,a+n)

;//二分查詢要求被查詢陣列是有序的

for(

long

long i=

0;i)long

long target=m-a[i]

;long

long l=i+1;

//從該位置的下乙個位置到最後乙個位置之間查詢

long

long r=n-1;

long

long mid;

while

(l<=r)

else

if(a[mid]

else}}

cout<<

"no"

;return0;

}

07 和為給定數

總時間限制 1000ms 記憶體限制 65536kb 描述給出若干個整數,詢問其中是否有一對數的和等於給定的數。輸入共三行 第一行是整數n 0 n 100,000 表示有n個整數。第二行是n個整數。整數的範圍是在0到10 8之間。第三行是乙個整數m 0 m 2 30 表示需要得到的和。輸出若存在和為...

Open judge 07和為給定數

總時間限制 1000ms 記憶體限制 65536kb 傳送門類似的題傳送門 描述 給出若干個整數,詢問其中是否有一對數的和等於給定的數。輸入 共三行 第一行是整數n 0 n 100,000 表示有n個整數。第二行是n個整數。整數的範圍是在0到10 8之間。第三行是乙個整數m 0 m 2 30 表示需...

和為給定數

總時間限制 1000ms 記憶體限制 65536kb 描述給出若干個整數,詢問其中是否有一對數的和等於給定的數。輸入共三行 第一行是整數n 0 n 100,000 表示有n個整數。第二行是n個整數。整數的範圍是在0到10 8之間。第三行是乙個整數m 0 m 2 30 表示需要得到的和。輸出若存在和為...