Пример #1
0
        private static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
            var io = new Io(args);

            var T = io.Read <int>();

            T.Times((C) =>
            {
                WriteLine($"Case #{C+1}:");
                var L = io.ReadArray <int>();
                int N = L[0], J = L[1];

                int ij = 0;
                while (J > 0)
                {
                    var jc       = string.Concat('1', Convert.ToString(ij++, 2).PadLeft(N - 2, '0'), '1');
                    var bases    = GetBaseValues(jc);
                    var divisors = GetDivisors(bases);
                    if (divisors.Length() == bases.Length())
                    {
                        WriteLine($"{jc} " + string.Join(" ", divisors));
                        --J;
                    }
                }
            });
        }
Пример #2
0
        static void MainD(string[] args)
        {
            Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
            var io = new Io(args);

            var T = io.Read <int>();

            T.Times((X) =>
            {
                var L = io.ReadArray <int>();
                int K = L[0], C = L[1], S = L[2];

                if (C * S < K)
                {
                    WriteLine($"Case #{X + 1}: IMPOSSIBLE");
                    return;
                }

                var pos = new List <long>();
                int i   = 0;
                while (i < K)
                {
                    int pi = i;
                    i      = Math.Min(i + C - 1, K - 1);

                    long p = 0;
                    while (pi <= i)
                    {
                        p = p * K + (pi++);
                    }

                    pos.Add(p + 1);
                    ++i;
                }

                WriteLine($"Case #{X+1}: " + string.Join(" ", pos));
            });
        }