トップページに戻る    次の競技プログラミングの問題へ    前の競技プログラミングの問題へ

ABC-066-A ringring

■■■問題■■■

snuke君は自転車を買いに来ました。
snuke君はすでに買う自転車を決めたのですが、
その自転車にはベルが付いていないため、自転車とは別にベルも買う必要があります。

snuke君は安全意識が高いので、ベルをどちらの手でも鳴らせるよう、
両方のハンドルに1つずつ付けることにしました。

お店にあるベルは3種類で、それぞれa円、b円、c円です。
この3つのうち、異なる2つのベルを選んで買うときの、
値段の合計の最小値を求めて下さい。

■■■入力■■■

a b c

●1 <= a,b,c <= 10000
●a,b,cは整数

■■■出力■■■

2つのベルを買うときの最安値を出力せよ。


C#のソース

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static string InputPattern = "Input1";

    static List<string> GetInputList()
    {
        var WillReturn = new List<string>();

        if (InputPattern == "Input1") {
            WillReturn.Add("700 600 780");
            //1300
            //700円のベルと600円のベルを買うと、1300円かかります。
            //700円のベルと780円のベルを買うと、1480円かかります。
            //600円のベルと780円のベルを買うと、1380円かかります。
            //よって、一番安いのは1300円です。
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("10000 10000 10000");
            //20000
            //どの2つを選んでも20000円かかってしまいます
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();
        int[] wkArr = InputList[0].Split(' ').Select(X => int.Parse(X)).ToArray();
        Console.WriteLine(wkArr.OrderBy(X => X).Take(2).Sum());
    }
}


解説

昇順にシートして最初の2件のSumを求めてます。