Example #1
0
        public override IEnumerable <object> Solve(TextReader inputStream)
        {
            var nm = inputStream.ReadIntArray();
            var n  = nm[0];
            var m  = nm[1];

            var a     = inputStream.ReadIntArray();
            var halfA = a.Select(i => i / 2).ToArray();
            var lcm   = new BigInteger(1);  // ゴリ押し

            var evenCount = f(halfA[0]);

            if (halfA.All(i => f(i) == evenCount))
            {
                halfA = halfA.Select(i => i / (1 << evenCount)).ToArray();
                foreach (var halfAi in halfA)
                {
                    lcm = BasicAlgorithms.Lcm(lcm, halfAi);
                }

                var count = (m / (lcm << evenCount) + 1) / 2;
                yield return(count);
            }
            else
            {
                yield return(0);
            }
        }
Example #2
0
        public override IEnumerable <object> Solve(TextReader inputStream)
        {
            var n           = inputStream.ReadInt();
            var permutation = Enumerable.Range(1, n).ToArray();
            var p           = inputStream.ReadIntArray();
            var q           = inputStream.ReadIntArray();

            var a     = 0;
            var b     = 0;
            var count = 0;

            foreach (var perm in BasicAlgorithms.GetPermutations(permutation, true))
            {
                if (perm.SequenceEqual(p))
                {
                    a = count;
                }
                if (perm.SequenceEqual(q))
                {
                    b = count;
                }
                count++;
            }

            yield return(Math.Abs(a - b));
        }
Example #3
0
 public _basicAlgorithmsUnitTests()
 {
     _basicAlgorithms = new BasicAlgorithms();
 }
 public BasicAlgorithmsController(BasicAlgorithms basicAlgorithms)
 {
     _basicAlgorithms = basicAlgorithms;
 }
 public _basicAlgorithmsUnitTests()
 {
     _basicAlgorithms = new BasicAlgorithms();
 }
 public BasicAlgorithmsController(BasicAlgorithms basicAlgorithms)
 {
     _basicAlgorithms = basicAlgorithms;
 }