μ£Όλͺ½μ μ² κΈ°κ΅°μ μμ±νκΈ° μν νλ‘μ νΈμ λμ°λ€. κ·Έλμ μΌμ² λμ₯μ ν΅ν΄ μ² κΈ°κ΅°μ΄ μ μ κ°μ·μ λ§λ€κ² νμλ€. μΌμ² λμ₯μ μ£Όλͺ½μ λͺ μ λ°λ₯΄κΈ° μνμ¬ μ°κ΅¬μ μ°©μνλ μ€ μλμ κ°μ μ¬μ€μ λ°κ²¬νκ² λμλ€.
κ°μ·μ λ§λλ μ¬λ£λ€μ κ°κ° κ³ μ ν λ²νΈλ₯Ό κ°μ§κ³ μλ€. κ°μ·μ λ κ°μ μ¬λ£λ‘ λ§λλλ° λ μ¬λ£μ κ³ μ ν λ²νΈλ₯Ό ν©μ³μ M(1 β€ M β€ 10,000,000)μ΄ λλ©΄ κ°μ·μ΄ λ§λ€μ΄ μ§κ² λλ€. μΌμ² λμ₯μ μμ μ΄ λ§λ€κ³ μλ μ¬λ£λ₯Ό κ°μ§κ³ κ°μ·μ λͺ κ°λ λ§λ€ μ μλμ§ κΆκΈν΄μ‘λ€. μ΄λ¬ν κΆκΈμ¦μ νμ΄ μ£ΌκΈ° μνμ¬ N(1 β€ N β€ 15,000) κ°μ μ¬λ£μ Mμ΄ μ£Όμ΄μ‘μ λ λͺ κ°μ κ°μ·μ λ§λ€ μ μλμ§λ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
첫째 μ€μλ μ¬λ£μ κ°μ N(1 β€ N β€ 15,000)μ΄ μ£Όμ΄μ§λ€. κ·Έλ¦¬κ³ λ λ²μ§Έ μ€μλ κ°μ·μ λ§λλλ° νμν μ M(1 β€ M β€ 10,000,000) μ£Όμ΄μ§λ€. κ·Έλ¦¬κ³ λ§μ§λ§μΌλ‘ μ μ§Έ μ€μλ Nκ°μ μ¬λ£λ€μ΄ κ°μ§ κ³ μ ν λ²νΈλ€μ΄ 곡백μ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. κ³ μ ν λ²νΈλ 100,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€.
첫째 μ€μ κ°μ·μ λ§λ€ μ μλ κ°μλ₯Ό μΆλ ₯νλ€.
import sys
input = sys.stdin.readline
n = int(input()) #μ¬λ£μ
ansNum = int(input()) # μμ±λ²νΈ
nums = list(map(int,input().split())) #μ¬λ£λ€ 리μ€νΈ
nums = sorted(nums)
count = 0 #μ λ΅ μΉ΄μ΄νΈ
start_index = 0
end_index = n-1
# μ
λ ₯κ°μ΄ ν¬λ―λ‘ ν¬ν¬μΈν° μ¬μ©νκΈ°
while start_index!=end_index: #start μΈλ±μ€κ° κ²°κ΅ nμ΄λ κ°κΈ° μ κΉμ§ λκ²μ.
if nums[start_index]+nums[end_index] < ansNum:
start_index+=1
elif nums[start_index]+nums[end_index] > ansNum:
end_index-=1
else: #κ°μ κ²½μ°
count+=1
start_index+=1
print(count)
μ¬λ£μ μ€λ³΅μ ν¬ν¨νμ§ μμΌλ―λ‘ μ λμ ν¬ν¬μΈν°λ₯Ό λκ³ κ΅¬κ°μ μ’νλ©΄μ λ΅μ μ°Ύμλκ°λ€.
μ λ΅μ μ°Ύμκ²½μ° μμ μΈλ±μ€λ₯Ό μ¦κ°μμΌμ€μΌ λ°λ³΅λ¬Έμ νμΆ μ‘°κ±΄μ λΆν©ν μ μλ€.