412. Sislovesme Apr 2026
2 4 2 1 4 3 5 2 3 1 5 4
love[i] = j and love[j] = i . Your task is to count how many mutual‑love pairs exist in the given group. 412. Sislovesme
def solve() -> None: data = sys.stdin.buffer.read().split() it = iter(data) t = int(next(it)) out_lines = [] for _ in range(t): n = int(next(it)) love = [0] + [int(next(it)) for _ in range(n)] # 1‑based list ans = 0 for i in range(1, n + 1): j = love[i] if i < j and love[j] == i: ans += 1 out_lines.append(str(ans)) sys.stdout.write("\n".join(out_lines)) 2 4 2 1 4 3 5 2 3 1 5 4 love[i] = j and love[j] = i
(A classic “mutual‑love” counting problem – often seen on SPOJ, LightOJ, and other online judges) 1️⃣ Problem statement You are given a group of N people, numbered from 1 to N . Each person loves exactly one other person (possibly himself). The love‑relationships are described by an array Each person loves exactly one other person (possibly
A is an unordered pair i , j ( i ≠ j ) such that
From Lemma 1 every increment corresponds to a genuine mutual‑love pair. From Lemma 2 every genuine pair contributes exactly one increment. From Lemma 3 no non‑mutual pair contributes any increment. Therefore the total number of increments equals precisely the number of mutual‑love pairs. ∎ 5️⃣ Complexity analysis Time – The loop visits each of the N people once, performing O(1) work per iteration: O(N) per test case.
Windows 호환용으로 신호변환기 (USB 485, CNV485U, CNV485UI, CNV485UI-M)용 드라이버
revision : 2.12.28
◈ Windows XP용 USB 드라이버(1) [클릭]
◈ Windows XP용 USB 드라이버(2) [클릭]