公式

B - カップリング選抜 解説 by sounansya


ペアにする \(1\) 人を固定する(スキル値を \(x\) とする)と、もう \(1\) 人のスキル値は \(S-x\) となります。したがって、 map などのデータ構造で各スキル値を持つ人が何人いるかを高速に計算できるようにし、 \(1\) 人を固定した際に対応するメンバーが何人いるかを求めていけば良いです。

実装例(Python3)

from collections import defaultdict

n, s = map(int, input().split())
mp = defaultdict(int)
ans = 0
for i in list(map(int, input().split())):
    ans += mp[s - i]
    mp[i] += 1
print(ans)

投稿日時:
最終更新: