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

No.201 yukicoderじゃんけん

■■■問題■■■

yukicoderじゃんけん とは
じゃんけんをして、ゆるふわポイントの多い方が勝ち

yukicoderじゃんけんをする二者の名前、ゆるふわポイント、じゃんけんの手が与えられるので、
勝者の名前を出力してください。
両者のゆるふわポイントが等しい場合は引き分けです。-1を出力してください。

■■■入力■■■

一行目には一人目の名前SA、ゆるふわポイントPA、出したじゃんけんの手XA、
二行目には二人目の名前SB、ゆるふわポイントPB、出したじゃんけんの手XB
が与えられます。
じゃんけんの手は'R'がグー、'S'がチョキ、'P'がパーを表します。

SA PA XA
SB PB XB

また、入力は以下の制約を満たします。

SA != SB
1 <=  |SA| , |SB| <= 100
SA,SBは小文字のアルファベットa-z、大文字のアルファベットA-Zのみで構成される文字列
0 <= PA,PB < 10の10000乗
PA,PBは整数で、leading zeroは付かない
XA,XBはR,S,Pのいずれか

■■■出力■■■

勝者の名前を出力してください。ただし、引き分けの場合は-1を出力してください。
最後に改行してください。 


C#のソース

using System;
using System.Collections.Generic;

class Program
{
    static string InputPattern = "Input1";

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

        if (InputPattern == "Input1") {
            WillReturn.Add("Alice 114 R");
            WillReturn.Add("Bob 514 S");
            //Bob
            //普通のじゃんけんならば
            //R(グー)を出したAliceがS(チョキ)を出したBobに勝ちますが、
            //これはyukicoderじゃんけんなのでゆるふわポイントの多いBobの勝ちです。
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("touritsu 99999999999999999999 P");
            WillReturn.Add("Peter 99999999999999999998 R");
            //touritsu
            //ゆるふわガチ勢のtouritsuさんとPeterさんの戦いです。
            //僅差ですがtouritsuさんの勝ちです。
        }
        else if (InputPattern == "Input3") {
            WillReturn.Add("Taro 0 R");
            WillReturn.Add("Hanako 0 S");
            //-1
            //まだ初心者の二人はゆるふわポイントを持っていません。
            //0ポイント同士で引き分けです。 
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();

        string[] wkArr = { };
        Action<string> SplitAct = (pStr) => wkArr = pStr.Split(' ');

        SplitAct(InputList[0]); string SA = wkArr[0], PA = wkArr[1];
        SplitAct(InputList[1]); string SB = wkArr[0], PB = wkArr[1];

        int MaxLen = Math.Max(PA.Length, PB.Length);
        PA = PA.PadLeft(MaxLen, '0');
        PB = PB.PadLeft(MaxLen, '0');

        int Comp = PA.CompareTo(PB);
        if (Comp > 0) Console.WriteLine(SA);
        if (Comp < 0) Console.WriteLine(SB);
        if (Comp == 0) Console.WriteLine(-1);
    }
}


解説

0パディングして、文字として大小比較してます。