예제 #1
0
    public static void AirConditioner()
    {
        var X   = IOLibrary.ReadInt();
        var ans = X >= 30;

        Console.WriteLine(IOLibrary.YesOrNo(ans));
    }
예제 #2
0
    public static void MakingTriangle()
    {
        var N       = IOLibrary.ReadInt();
        var L       = IOLibrary.ReadIntArray();
        var sortedL = L.Sort();

        if (N < 3)
        {
            Console.WriteLine(0);
            return;
        }

        var count = 0;

        foreach (var combinationIndex in MathLibrary.GetCombinationIndexCollection(N, 3))
        {
            var i = combinationIndex[0];
            var j = combinationIndex[1];
            var k = combinationIndex[2];

            if (sortedL[i] != sortedL[j] &&
                sortedL[j] != sortedL[k] &&
                sortedL[i] + sortedL[j] > sortedL[k])
            {
                count++;
            }
        }

        Console.WriteLine(count);
    }
예제 #3
0
    public static void ReversibleCards()
    {
        var N = IOLibrary.ReadInt();

        var abArray = IOLibrary.ReadInt2DArray(N);

        var max = 400000;
        var sum = new int[max];

        var ans = 0;

        for (var i = 0; i < N; i++)
        {
            var(a, b) = IOLibrary.ReadInt2();

            if (sum[a] == 0)
            {
                ans++;
            }
            else if (sum[b] == 0)
            {
                ans++;
            }
        }

        Console.WriteLine(ans);
    }
예제 #4
0
    public static void Coins()
    {
        var A = IOLibrary.ReadInt();
        var B = IOLibrary.ReadInt();
        var C = IOLibrary.ReadInt();
        var X = IOLibrary.ReadInt();

        var count = 0;

        for (var a = 0; a <= A; a++)
        {
            for (var b = 0; b <= B; b++)
            {
                for (var c = 0; c <= C; c++)
                {
                    var total = 500 * a + 100 * b + 50 * c;
                    if (total == X)
                    {
                        count++;
                    }
                }
            }
        }
        Console.WriteLine(count);
    }
예제 #5
0
    public static void ChooseMe()
    {
        var N = IOLibrary.ReadInt();

        var sub     = 0L;
        var subList = new List <long>();

        for (var i = 0; i < N; i++)
        {
            var(A, B) = IOLibrary.ReadLong2();
            sub      -= A;
            var sum = 2 * A + B;
            subList.Add(sum);
        }
        subList.Sort();

        var ans = 0;

        while (sub <= 0)
        {
            sub += subList.Last();
            subList.RemoveAt(subList.Count - 1);
            ans++;
        }

        Console.WriteLine($"{ans}");
    }
예제 #6
0
    public static void UnluckySeven()
    {
        var N = IOLibrary.ReadInt();

        var count = 0;

        for (var num = 1; num <= N; num++)
        {
            //10進数
            if (num.ToString().Contains("7"))
            {
                count++;
            }
            else
            {
                //8進数
                if (num.ToOct().Contains("7"))
                {
                    count++;
                }
            }
        }

        var ans = N - count;

        Console.WriteLine(ans);
    }
예제 #7
0
    public static void SumOfProductOfPairs()
    {
        var N = IOLibrary.ReadInt();
        var A = IOLibrary.ReadLongArray();

        var partSumList = new List <ModInt>()
        {
            0
        };

        foreach (var a in A)
        {
            var sum = partSumList[partSumList.Count - 1] + a;
            partSumList.Add(sum);
        }

        ModInt ans = 0;

        for (var i = 0; i < N - 1; i++)
        {
            ModInt ai = A[i];
            // i+1からN番目までの和
            var sum = partSumList[partSumList.Count - 1] - partSumList[i + 1];

            ans += ai * sum;
        }

        Console.WriteLine(ans);
    }
예제 #8
0
    public static void GentlePairs()
    {
        var N      = IOLibrary.ReadInt();
        var points = IOLibrary.ReadInt2DArray(N);

        var ans = 0;

        for (var i = 0; i < N; i++)
        {
            for (var j = i + 1; j < N; j++)
            {
                if (i < j)
                {
                    var pointI = points[i];
                    var pointJ = points[j];

                    var dx = Math.Abs(pointI[0] - pointJ[0]);
                    var dy = Math.Abs(pointI[1] - pointJ[1]);
                    if (dx >= dy)
                    {
                        ans++;
                    }
                }
            }
        }

        Console.WriteLine(ans);
    }
예제 #9
0
    public static void JudgeStatusSummary()
    {
        var N = IOLibrary.ReadInt();
        var S = IOLibrary.ReadStringArray(N);

        var results = new string[]
        {
            $"AC",
            $"WA",
            $"TLE",
            $"RE",
        };

        var table = results.GroupJoin(S,
                                      r => r,
                                      c => c,
                                      (r, cArray) => new
        {
            Reult = r,
            Count = cArray?.Count(),
        });

        foreach (var item in table)
        {
            Console.WriteLine($"{item.Reult} x {item.Count.GetValueOrDefault()}");
        }
    }
예제 #10
0
    public static void Collinearity()
    {
        var N      = IOLibrary.ReadInt();
        var pArray = new Point[N];

        for (var i = 0; i < N; i++)
        {
            var(x, y) = IOLibrary.ReadInt2();
            var p = new Point(x, y);
            pArray[i] = p;
        }

        foreach (var indexArray in MathLibrary.GetCombinationIndexCollection(N, 3))
        {
            var p0   = pArray[indexArray[0]];
            var p1   = pArray[indexArray[1]];
            var p2   = pArray[indexArray[2]];
            var area = Point.CalcTriangleArea(p0 - p1, p0 - p2);
            if (area == 0)
            {
                Console.WriteLine(IOLibrary.YesOrNo(true));
                return;
            }
        }

        Console.WriteLine(IOLibrary.YesOrNo(false));
    }
예제 #11
0
    public static void GoToSchool()
    {
        var N = IOLibrary.ReadInt();
        var A = IOLibrary.ReadIntArray()
                .Select((content, index) => new
        {
            Content = content,
            Index   = index,
        })
                .ToArray();

        Array.Sort(A,
                   (x, y) =>
        {
            if (x.Content == y.Content)
            {
                return(0);
            }
            else if (x.Content < y.Content)
            {
                return(-1);
            }
            else
            {
                return(1);
            }
        });

        var ans = string.Join(" ", A.Select(a => a.Index + 1));

        Console.WriteLine(ans);
    }
예제 #12
0
    public static void Calc()
    {
        var a   = IOLibrary.ReadInt();
        var ans = a + a * a + a * a * a;

        Console.WriteLine(ans);
    }
예제 #13
0
    public static void TwoSequences2()
    {
        var N = IOLibrary.ReadInt();
        var a = IOLibrary.ReadLongArray();
        var b = IOLibrary.ReadLongArray();

        var maxA = a[0];
        var maxC = a[0] * b[0];

        for (var j = 0; j < N; j++)
        {
            for (var i = Math.Max(0, j - 1); i <= j; i++)
            {
                if (a[i] > maxA)
                {
                    maxA = a[j];
                }
            }

            var c = maxA * b[j];
            if (c > maxC)
            {
                maxC = c;
            }

            Console.WriteLine(maxC);
        }
    }
예제 #14
0
    public static void Lottery()
    {
        var n = IOLibrary.ReadInt();
        var m = IOLibrary.ReadInt();
        var x = IOLibrary.ReadIntArray().Sort().ToArray();

        var cdArray = new int[n * n];

        for (var c = 0; c < n; c++)
        {
            for (var d = 0; d < n; d++)
            {
                cdArray[c * d + d] = c + d;
            }
        }

        for (var a = 0; a < n; a++)
        {
            for (var b = 0; b < n; b++)
            {
                var xd = m - x[a] + x[b];
                var d  = x.BinarySearch(xd);
                if (d >= 0)
                {
                    Console.WriteLine(IOLibrary.YesOrNo(true));
                }
            }
        }

        Console.WriteLine(IOLibrary.YesOrNo(false));
    }
예제 #15
0
    public static void HeavyRotation()
    {
        var N     = IOLibrary.ReadInt();
        var color = (N % 2 == 0) ? "White" : "Black";

        Console.WriteLine(color);
    }
예제 #16
0
    public static void KagamiMochi()
    {
        var N   = IOLibrary.ReadInt();
        var d   = IOLibrary.ReadIntArray(N);
        var ans = d.Distinct().Count();

        Console.WriteLine(ans);
    }
예제 #17
0
    public static void RedundantRedundancy()
    {
        var N    = IOLibrary.ReadInt();
        var list = Enumerable.Range(1, N);
        var ans  = MathLibrary.LCM(list);

        Console.WriteLine(ans + 1);
    }
예제 #18
0
    /// <summary>
    /// 7
    /// </summary>
    public static void Bingo()
    {
        var gridNum = 3;
        var A       = IOLibrary.ReadInt2DArray(gridNum, gridNum);
        var N       = IOLibrary.ReadInt();
        var b       = new int[N];

        for (var i = 0; i < N; i++)
        {
            b[i] = IOLibrary.ReadInt();
        }

        var judgeList = new bool[gridNum, gridNum];

        for (var i = 0; i < gridNum; i++)
        {
            for (var j = 0; j < gridNum; j++)
            {
                //数字をマーク
                var num = A[i, j];
                if (b.Contains(num))
                {
                    judgeList[i, j] = true;
                }
            }
        }

        //ビンゴかどうかチェック
        //横
        for (var i = 0; i < gridNum; i++)
        {
            if (judgeList[i, 0] & judgeList[i, 1] & judgeList[i, 2])
            {
                Console.WriteLine(IOLibrary.YesOrNo(true));
                return;
            }
        }

        //縦
        for (var i = 0; i < gridNum; i++)
        {
            if (judgeList[0, i] & judgeList[1, i] & judgeList[2, i])
            {
                Console.WriteLine(IOLibrary.YesOrNo(true));
                return;
            }
        }

        //ななめ
        if (judgeList[0, 0] & judgeList[1, 1] & judgeList[2, 2] ||
            judgeList[0, 2] & judgeList[1, 1] & judgeList[2, 0])
        {
            Console.WriteLine(IOLibrary.YesOrNo(true));
            return;
        }

        Console.WriteLine(IOLibrary.YesOrNo(false));
    }
예제 #19
0
    public static void DuodecimFerra()
    {
        var L = IOLibrary.ReadInt();

        //重複組合せ
        var ans = MathLibrary.Combination(L - 1, 11);

        Console.WriteLine(ans);
    }
예제 #20
0
    public static void UnevenNumbers()
    {
        var N     = IOLibrary.ReadInt();
        var count = Enumerable.Range(1, N)
                    .Select(num => MathLibrary.Digits(num))
                    .Count(num => num % 2 == 1);

        Console.WriteLine(count);
    }
예제 #21
0
    public static void Alchemist()
    {
        var N = IOLibrary.ReadInt();
        var v = IOLibrary.ReadIntArray();

        var ans = v.Sort().Skip(1).Aggregate((double)v[0], (x, y) => (x + y) / 2.0);

        Console.WriteLine(ans);
    }
예제 #22
0
    public static void Payment()
    {
        var N      = IOLibrary.ReadInt();
        var money  = 1000;
        var bills  = (N + money - 1) / money;
        var change = money * bills - N;

        Console.WriteLine(change);
    }
예제 #23
0
    public static void Orthogonality()
    {
        var N = IOLibrary.ReadInt();
        var A = IOLibrary.ReadIntArray();
        var B = IOLibrary.ReadIntArray();

        var sum = A.Zip(B, (a, b) => a * b).Sum();

        Console.WriteLine(IOLibrary.YesOrNo(sum == 0));
    }
예제 #24
0
    public static int[] ReadIntArray(int row)
    {
        var array = new int[row];

        for (var i = 0; i < row; i++)
        {
            array[i] = IOLibrary.ReadInt();
        }
        return(array);
    }
예제 #25
0
    static void Input()
    {
        {
            var str = IOLibrary.ReadLine();
        }

        {
            var N = IOLibrary.ReadInt();
        }

        {
            var(N, M) = IOLibrary.ReadInt2();
        }

        {
            var(N, M, K) = IOLibrary.ReadInt3();
        }

        {
            var numLong = IOLibrary.ReadLong();
        }

        {
            var(N, M) = IOLibrary.ReadLong2();
        }

        {
            var(N, M, K) = IOLibrary.ReadLong3();
        }

        {
            var input = IOLibrary.ReadIntArray();
        }

        {
            var input = IOLibrary.ReadLongArray();
        }

        {
            var list = IOLibrary.ReadIntList();
        }

        {
            var list = IOLibrary.ReadLongList();
        }

        {
            var N          = 1;
            var int2DArray = IOLibrary.ReadInt2DArray(N);
        }
        {
            var N           = 1;
            var long2DArray = IOLibrary.ReadLong2DArray(N);
        }
    }
예제 #26
0
    public static void ATimesBPlusC()
    {
        var N     = IOLibrary.ReadInt();
        var count = 0;

        for (var A = 1; A < N; A++)
        {
            var BCCount = (N - 1) / A;
            count += BCCount;
        }
        Console.WriteLine(count);
    }
예제 #27
0
    /// <summary>
    /// 11
    /// </summary>
    public static void BreakNumber()
    {
        var N       = IOLibrary.ReadInt();
        var product = 1;

        while (product * 2 <= N)
        {
            product <<= 1;
        }

        Console.WriteLine(product);
    }
예제 #28
0
    public static void DivideTheProblems()
    {
        var N       = IOLibrary.ReadInt();
        var d       = IOLibrary.ReadIntArray();
        var sortedD = d.Sort();

        var middle = N / 2;
        var maxABC = sortedD[middle - 1];
        var minARC = sortedD[middle];

        Console.WriteLine(minARC - maxABC);
    }
예제 #29
0
    public static void TrapezoidSum()
    {
        var N   = IOLibrary.ReadInt();
        var sum = 0L;

        for (var i = 0; i < N; i++)
        {
            var(A, B) = IOLibrary.ReadLong2();
            sum      += (A + B) * (B - A + 1) / 2;
        }
        Console.WriteLine(sum);
    }
예제 #30
0
    /// <summary>
    /// 9
    /// </summary>
    public static void CollectingBallsEasy()
    {
        var N = IOLibrary.ReadInt();
        var K = IOLibrary.ReadInt();
        var x = IOLibrary.ReadIntArray();

        var sum = 0;

        for (var i = 0; i < N; i++)
        {
            var length = Math.Min(x[i], K - x[i]);
            sum += 2 * length;
        }

        Console.WriteLine(sum);
    }