static void EulerTourDfs(int v, int depth) { order[v].Add(tour.Count); minDepth.Set(tour.Count, depth); foreach (var nv in map[v]) { tour.Add(v); EulerTourDfs(nv, depth + 1); tour.Add(-nv); order[v].Add(tour.Count); minDepth.Set(tour.Count, depth); } }
static void Main() { var r = new List <long>(); var h = Read(); var n = h[0]; var st = new ST_Min(n); st.InitAllLevels(int.MaxValue); for (int i = 0; i < h[1]; i++) { var q = Read(); if (q[0] == 0) { st.Set(q[1], q[2]); } else { r.Add(st.Submin(q[1], q[2] + 1)); } } Console.WriteLine(string.Join("\n", r)); }