public void Solve(ConsoleReader cr, ConsoleWriter cw) { int N = cr; int Q = cr; var seg = new LazySegtree <(uint v, uint len), (uint b, uint c), LazySegtreeSolverOp>(cr.Repeat(N).Select(cr => ((uint)cr.Int(), 1U))); for (int q = 0; q < Q; q++) { int t = cr; int l = cr; int r = cr; if (t == 0) { uint b = (uint)cr.Int(); uint c = (uint)cr.Int(); seg.Apply(l, r, (b, c)); } else { cw.WriteLine(seg[l..r].v);
public override void Solve(ConsoleReader cr, ConsoleWriter cw) { int q = cr; var queues = new RealTimeQueue <int> [q]; for (int i = 0; i < q; i++) { var type = cr.Int(); var t = cr.Int(); var prev = (uint)t < (uint)queues.Length ? queues[t] : RealTimeQueue <int> .Empty; if (type == 0) { queues[i] = prev.Enqueue(cr.Int()); } else { queues[i] = prev.Dequeue(out var v); cw.WriteLine(v); } } }
public void Solve(ConsoleReader cr, ConsoleWriter cw) { _ = cr.Ascii(); _ = cr.Ascii(); int n = cr; int m = cr; var twoSat = new TwoSat(n); for (int i = 0; i < m; i++) { int a = cr; int b = cr; _ = cr.Int(); int a1 = Math.Abs(a) - 1; bool a2 = a >= 0; int b1 = Math.Abs(b) - 1; bool b2 = b >= 0; twoSat.AddClause(a1, a2, b1, b2); } if (twoSat.Satisfiable()) { cw.WriteLine("s SATISFIABLE"); cw.StreamWriter.Write("v "); var res = new int[n + 1]; var answer = twoSat.Answer(); for (int i = 0; i < n; i++) { if (answer[i]) { res[i] = i + 1; } else { res[i] = -(i + 1); } } cw.WriteLineJoin(res); } else { cw.WriteLine("s UNSATISFIABLE"); } }