トップページに戻る
次の競技プログラミングの問題へ
前の競技プログラミングの問題へ
No.369 足し間違い
■■■問題■■■
yukiさんは足し算が苦手でよく足し間違いをします。
N個の数字とyukiさんの答えが与えられるので,
(本当の答え) - (yukiさんの答え)の値を出力して下さい
■■■入力■■■
N
A1 A2 ・・・ AN
v
1 <= N <= 1万
-1万 <= Ai <= 1万
-1億 <= v <= 10億
N,Ai,vともに整数
vはyukiさんの答えです
■■■出力■■■
(本当の答え) - (yukiさんの答え)の値を出力して下さい
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("4");
WillReturn.Add("5 1 4 3");
WillReturn.Add("10");
//3
//合計が13に対し、
//yukiさんの答えが10になっているので3足りていません
}
else if (InputPattern == "Input2") {
WillReturn.Add("3");
WillReturn.Add("2 1 -1");
WillReturn.Add("0");
//2
//入力に負の数が含まれる場合が有ります
}
else if (InputPattern == "Input3") {
WillReturn.Add("3");
WillReturn.Add("-5 -2 -4");
WillReturn.Add("0");
//-11
//出力が負になる場合も有ります
}
else {
string wkStr;
while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
}
return WillReturn;
}
static void Main()
{
List<string> InputList = GetInputList();
int[] wkArr = { };
Action<string> SplitAct = pStr =>
wkArr = pStr.Split(' ').Select(X => int.Parse(X)).ToArray();
SplitAct(InputList[1]);
int CorrectSum = wkArr.Sum();
SplitAct(InputList[2]);
int YukiAns = wkArr[0];
Console.WriteLine(CorrectSum - YukiAns);
}
}
解説
ナイーブに解いてます。