しらとりのブログ

社会人ひよこプログラマのtil

C#で競プロするときの標準入力取得コード(LINQ)

コピペ用です。 実行速度よりも提出速度を速めたいのでそっち系のコードです。

/* 入力系 */

// S
string S = Console.ReadLine();

// N
int N = int.Parse(Console.ReadLine());

// A1,A2,A3,...
int[] an = Console.ReadLine()
    .Split(' ')
    .Select(int.Parse)
    .ToArray();

// Nの数だけ A1,A2,A3,...の繰り返し
var alist = new List<int[]>();
N.Times(() =>
{
    alist.Add(Console.ReadLine()
        .Split(' ')
        .Select(int.Parse)
        .ToArray());
});

/* 繰り返し系 */
public static class IntExtentions
{
    public static void Times(this int times, Action action)
    {
        for (int i = 0; i < times; i++)
            action();
    }
    public static void Times(this int times, Action<int> action)
    {
        for (int i = 0; i < times; i++)
            action(i);
    }
}