Database deadlock victim selector

Write codeMedium25 minOracle and Microsoft style

Your task

A database deadlock detector must pick a victim to abort. Given n transactions (0..n-1) and a list of wait-for edges [a, b] (a waits for b), find the smallest-numbered transaction that lies on at least one directed cycle (a deadlocked transaction). Aborting it is a candidate for breaking a deadlock. Return that transaction id, or -1 if there is no deadlock.

Examples

deadlock_victim(n: int, edges: list[list[int]]) -> int
Example 1
Inputdeadlock_victim(4, [[1, 2], [2, 3], [3, 1]])
Output1