トップページに戻る
次の競技プログラミングの問題へ
前の競技プログラミングの問題へ
No.292 芸名
■■■問題■■■
お笑い芸人のA君は芸名Sを考えました。
最初にB師匠に意見をもらうと最初からt文字目(0-index)を1文字消せと言われました。
次にC師匠に意見をもらうと最初からu文字目(0-index)を1文字消せと言われました。
A君はB師匠とC師匠に言われた通りに文字を消すように決めました。
B師匠とC師匠の意見が同じであれば消す文字は1文字です。
B師匠とC師匠の意見が異なれば消す文字は2文字です。
S 、t 、u が与えられるのでB師匠とC師匠に意見をもらってできた名前を答えよ。
■■■入力■■■
S t u
文字列Sは小文字のアルファベットからなる。
3 <= 文字列Sの長さ <= 50
0 <= t <= 文字列Sの長さ-1
0 <= u <= 文字列Sの長さ-1
■■■出力■■■
できたA君の芸名を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("yukicoder 0 4");
//ukioder
//A君が最初に考えた芸名はyukicoderです。
//最初にB師匠にyukicoderから0文字目のyを消せと言われました。
//次にC師匠にyukicoderから4文字目のcを消せと言われました。
//結局A君の芸名はyとcを消してukioderに決定しました。
}
else if (InputPattern == "Input2") {
WillReturn.Add("aaa 0 0");
//aa
//B師匠もC師匠も0文字目のaを消せと言いました。
//A君が消したのは0文字目のaのみです。
}
else if (InputPattern == "Input3") {
WillReturn.Add("nmnmnmnmnmnmnm 13 12");
//nmnmnmnmnmnm
//最後の2文字が無いことになりましたね
}
else {
string wkStr;
while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
}
return WillReturn;
}
static void Main()
{
List<string> InputList = GetInputList();
string[] StrArr = InputList[0].Split(' ');
string S = StrArr[0];
int t = int.Parse(StrArr[1]);
int u = int.Parse(StrArr[2]);
var sb = new System.Text.StringBuilder();
for (int I = 0; I <= S.Length - 1; I++) {
if (I == t) continue;
if (I == u) continue;
sb.Append(S[I]);
}
Console.WriteLine(sb.ToString());
}
}
解説
StringBuilderに順番に文字をつないでます。