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

No.383 レーティング

■■■問題■■■

あるプログラミングコンテストでA君のレートがaからbに変化しました。
A君はこのレーティングの変動をツイートするために,

a → b(s)

という記法をよく用います。ここで,sは 文字列で,以下のように決まります。
●もしレーティングが変化していないなら,"0"
●もしレーティングが上昇しているなら,"+"という文字に続いてレートの変化量を書く
●もしレーティングが減少しているなら,"-"という文字に続いてレートの変化量を書く

A君は引き算が苦手なので,よくsを間違えてしまいます。
A君の代わりにsを考えてあげてください。

■■■入力■■■

a b

1行目にA君のコンテスト前のレートa,コンテスト後のレートbが与えられます。
0 <= a, b < 4000

■■■出力■■■

レーティングの変化量を示す文字列を出力してください。
最後に改行してください。


C#のソース

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

class Program
{
    static string InputPattern = "InputX";

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

        if (InputPattern == "Input1") {
            WillReturn.Add("1200 1350");
            //+150
            //レートが増える場合,"+"を忘れないようにして下さい
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("1350 1200");
            //-150
            //レートが減ることもあります。トホホ。
        }
        else if (InputPattern == "Input3") {
            WillReturn.Add("1500 1500");
            //0
            //レートが変化しないこともあります。
            //この時は "+" も "-" も書きません。
        }
        else if (InputPattern == "Input4") {
            WillReturn.Add("2179 2218");
            //+39
            //レッドコーダーおめでとうございます
        }
        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();
        int A = wkArr[0];
        int B = wkArr[1];

        int Answer = B - A;
        if (Answer > 0) Console.WriteLine("+{0}", Answer);
        else Console.WriteLine("{0}", Answer);
    }
}


解説

ナイーブに実装してます。