static void Main() { var n = int.Parse(Console.ReadLine()); var s = Console.ReadLine(); var dp = new long[n]; dp[0] = 1; for (int i = 0; i < n - 1; i++) { var raq = new StaticRAQ(n); if (s[i] == '>') { for (int j = 0; j <= i; j++) { raq.Add(0, j + 1, dp[j]); } } else { for (int j = 0; j <= i; j++) { raq.Add(j + 1, i + 2, dp[j]); } } dp = Array.ConvertAll(raq.GetAll(), x => x % M); } Console.WriteLine(dp.Sum() % M); }
static void Main() { var h = Read(); int n = h[0], t = h[1]; var raq = new StaticRAQ(t); for (int i = 0; i < n; i++) { var q = Read(); raq.Add(q[0], q[1], 1); } Console.WriteLine(raq.GetAll().Max()); }
static void Main() { var h = Read(); int n = h[0], w = h[1]; var ps = Array.ConvertAll(new bool[n], _ => Read()); var raq = new StaticRAQ(200000); foreach (var p in ps) { raq.Add(p[0], p[1], p[2]); } Console.WriteLine(raq.GetAll().Max() <= w ? "Yes" : "No"); }
static object Solve() { var n = int.Parse(Console.ReadLine()); var a = Read(); var raq = new StaticRAQ(n); for (int i = 0; i < n; i++) { raq.Add(i + 1 - a[i], i + 1, 1); } return(string.Join(" ", raq.GetAll().Select(Math.Sign))); }
static void Main() { var h = Read(); int n = h[0], k = h[1]; var a = Read(); for (int c = 0; c < k; c++) { var raq = new StaticRAQ(n); for (int i = 0; i < n; i++) { raq.Add(i - a[i], i + a[i] + 1, 1); } var b = raq.GetAll(); if (Enumerable.SequenceEqual(a, b)) { break; } a = b; } Console.WriteLine(string.Join(" ", a)); }