Esempio n. 1
0
    static object Solve()
    {
        var n = int.Parse(Console.ReadLine());
        var a = ReadL();

        var set = new WBMultiSet <long>();

        var c = 0;

        foreach (var v in a)
        {
            var x = v;
            while ((x & 1) == 0)
            {
                x >>= 1;
                c++;
            }
            set.Add(x);
        }

        while (c > 0 && 3 * set.GetFirst() <= set.GetLast())
        {
            c--;
            var x = set.GetFirst();
            set.RemoveAt(0);
            set.Add(x * 3);
        }

        a = set.ToArray();
        var r = a[c % n];

        c /= n;

        while (c-- > 0)
        {
            r *= 3;
        }
        return(r);
    }