トップページに戻る
次の競技プログラミングの問題へ
前の競技プログラミングの問題へ
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を求めてます。