結果

問題 No.701 ひとりしりとり
ユーザー Rim_EarthLightsRim_EarthLights
提出日時 2018-06-21 16:18:17
言語 C#(csc)
(csc 3.9.0)
結果
TLE  
実行時間 -
コード長 1,515 bytes
コンパイル時間 2,354 ms
コンパイル使用メモリ 105,664 KB
実行使用メモリ 32,456 KB
最終ジャッジ日時 2023-09-13 07:34:18
合計ジャッジ時間 7,710 ms
ジャッジサーバーID
(参考情報)
judge13 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 67 ms
23,632 KB
testcase_01 AC 68 ms
21,732 KB
testcase_02 AC 69 ms
23,660 KB
testcase_03 AC 70 ms
25,520 KB
testcase_04 AC 71 ms
25,948 KB
testcase_05 AC 69 ms
25,600 KB
testcase_06 AC 68 ms
25,636 KB
testcase_07 AC 69 ms
23,684 KB
testcase_08 AC 70 ms
25,756 KB
testcase_09 AC 104 ms
23,672 KB
testcase_10 TLE -
testcase_11 -- -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

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

namespace yukiCoder {
    class Program {
        static void Main(string[] args) {
            shiritori(int.Parse(Console.ReadLine()));
            Console.ReadKey();
        }
        public static void shiritori(int line) {
            string word = null;
            var lastword = new List<string>();
            var rndList = new List<byte>();
            var rnd_word = new Random(Environment.TickCount);
            var rnd_len = rnd_word;
            for (int i = 1; i <= line; i++) {
                do {
                    for (int j = 0; j < rnd_len.Next(2, 19); j++) {
                        rndList.Add(byte.Parse(rnd_word.Next(65, 91).ToString()));
                    }
                    word = Encoding.ASCII.GetString(rndList.ToArray()).ToLower();
                    if(word.Last() == 'n') {
                        word = word.Substring(0, word.Length -1) + 'p';
                    }
                } while (lastword.Where(x => x.Contains(word)).Count() > 0);
                if (lastword.Count() != 0) {
                    char c = lastword.Last().Last();
                    word = word.Substring(1, word.Length - 1);
                    word = c + word;
                }
                if (i == line) {
                    word += 'n';
                }
                Console.WriteLine(word);
                lastword.Add(word);
                rndList.Clear();
            }
        }
    }
}
0