c059: 2. 魔杖
標籤 :
通過比率 : 0人/0人 (0%) [非即時]
評分方式:
Tolerant

最近更新 : 2025-06-08 01:31

內容

在奧利凡德魔杖商店中,有 n 種不同的樹枝,第 i 種樹枝有個相容值 ai,並且每種樹枝都有無限個。

⼀根魔杖由兩根樹枝所組成,並且這兩根樹枝可以是同⼀種,也可以是不同種。

魔杖會有個穩定值。⼀根由第 i 種和第 j 種的樹枝所製作⽽成的魔杖,其穩定值會是 ai × aj

太穩定不好、太不穩定也不好。根據研究,穩定值越接近 k 越好。

你,⾝為⼀個魔法學院的新⽣,現在正在奧利凡德魔杖商店內準備購買⾃⼰未來三年所使⽤的魔杖。

請問你能夠組成多好的魔杖;換⾔之,請你找到 min1≤i,j≤n |k - ai × aj|。

請注意,在奧利凡德魔杖商店中,樹枝是按照⼀種特殊⽅式來排序的。保證存在某個數字 p 滿⾜ 1 ≤ p ≤ n,使得 a1 ≤ a2 ≤ ... ≤ ap 並且  ap ≥ ap+1 ≥ ... ≥ an 。也就是說 a[1 ... p] 是非嚴格遞增、⽽ a[p ... n] 是非嚴格遞減的。

輸入說明

輸入的第⼀⾏包含兩個正整數 n, k,代表共有幾種不同的樹枝、還有最好的穩定值。

輸入的第⼆⾏包含 n 個非負整數 a1, a2, ..., an,其中 ai 代表第 i 種樹枝的相容值。

保證存在某個數字 p 滿⾜ 1 ≤ p ≤ n,使得 a[1 ... p] 是非嚴格遞增、⽽ a[p ... n] 是非嚴格遞減的。

  • 1 ≤ n ≤ 106
  • 0 ≤ k ≤ 1018
  • 0 ≤ ai ≤ 109 for i = 1, 2, ..., n。

 

輸出說明

請輸出⼀個整數,代表 min1≤i,j≤n |k - ai × aj|。

範例輸入 #1
5 5
1 2 3 2 1
範例輸出 #1
1
範例輸入 #2
5 4
1 2 3 2 1
範例輸出 #2
0
範例輸入 #3
4 5
1 2 3 4
範例輸出 #3
1
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (20%): 1.0s , <1K
公開 測資點#1 (20%): 1.0s , <1K
公開 測資點#2 (20%): 1.0s , <1K
公開 測資點#3 (20%): 1.0s , <1M
公開 測資點#4 (20%): 1.0s , <10M
提示 :

在範例 1 中,你可以使⽤第 2 種和第 4 種的樹枝組成⼀根穩定值為 2 × 2 = 4 的魔杖,|k - 4| = 1 是最佳的。

在範例 2 中,你可以使⽤第 2 種和第 4 種的樹枝組成⼀根穩定值為 2 × 2 = 4 的魔杖,|k - 4| = 0 是最佳的。

在範例 3 中,你可以使⽤第 2 種和第 3 種的樹枝組成⼀根穩定值為 2 × 3 = 6 的魔杖,|k - 5| = 1 是最佳的。

標籤:
出處:
2024YTP初賽 [管理者:
zero (管理員)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」