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

ABC-065-A Expired?

■■■問題■■■

高橋君は胃が強いので、賞味期限をX日まで過ぎた食品を食べてもお腹を壊しません。
賞味期限を X+1 日以上過ぎた食品を食べると、お腹を壊します。

また、賞味期限を過ぎずに食べると、おいしく感じます。
そうでない場合、おいしく感じません。

高橋君は、賞味期限のA日前に食品を買ってきて、買ってからB日後に食べました。

高橋君が食品をおいしく感じた場合、deliciousを、
おいしくは感じなかったがお腹は壊さなかった場合、safeを、
お腹を壊した場合、dangerousを出力するプログラムを作成してください。

■■■入力■■■

X A B

●1 <= X,A,B <= 10億

■■■出力■■■

高橋君が食品をおいしく感じた場合deliciousを、
おいしくは感じなかったがお腹は壊さなかった場合safeを、
お腹を壊した場合dangerousを出力せよ。


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 3 6");
            //safe
            //賞味期限を3日過ぎて食べるので、
            //おいしくは感じませんが、お腹も壊しません。
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("6 5 1");
            //delicious
            //賞味期限を過ぎていないので、おいしく感じます
        }
        else if (InputPattern == "Input3") {
            WillReturn.Add("3 7 12");
            //dangerous
            //賞味期限を5日過ぎて食べるので、お腹を壊します
        }
        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(pX => int.Parse(pX)).ToArray();
        int X = wkArr[0];
        int A = wkArr[1];
        int B = wkArr[2];

        if (B <= A) {
            Console.WriteLine("delicious");
        }
        else if (B <= A + X) {
            Console.WriteLine("safe");
        }
        else {
            Console.WriteLine("dangerous");
        }
    }
}


解説

ナイーブに解いてます。