結果
問題 | No.101 ぐるぐる!あみだくじ! |
ユーザー | 14番 |
提出日時 | 2016-04-12 01:24:26 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 6,196 bytes |
コンパイル時間 | 910 ms |
コンパイル使用メモリ | 116,192 KB |
実行使用メモリ | 52,892 KB |
最終ジャッジ日時 | 2024-04-15 00:31:38 |
合計ジャッジ時間 | 23,881 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 28 ms
24,784 KB |
testcase_01 | AC | 260 ms
52,892 KB |
testcase_02 | AC | 257 ms
52,468 KB |
testcase_03 | AC | 36 ms
27,432 KB |
testcase_04 | AC | 35 ms
25,392 KB |
testcase_05 | AC | 72 ms
29,840 KB |
testcase_06 | AC | 36 ms
25,648 KB |
testcase_07 | AC | 53 ms
29,716 KB |
testcase_08 | AC | 50 ms
29,180 KB |
testcase_09 | AC | 42 ms
27,560 KB |
testcase_10 | AC | 43 ms
25,372 KB |
testcase_11 | AC | 2,541 ms
29,564 KB |
testcase_12 | AC | 2,552 ms
31,764 KB |
testcase_13 | AC | 2,543 ms
29,460 KB |
testcase_14 | AC | 3,631 ms
29,440 KB |
testcase_15 | AC | 284 ms
31,892 KB |
testcase_16 | AC | 331 ms
31,380 KB |
testcase_17 | AC | 385 ms
33,556 KB |
testcase_18 | AC | 473 ms
29,572 KB |
testcase_19 | AC | 528 ms
27,792 KB |
testcase_20 | AC | 61 ms
33,544 KB |
testcase_21 | AC | 61 ms
31,516 KB |
testcase_22 | AC | 804 ms
31,888 KB |
testcase_23 | AC | 452 ms
31,632 KB |
testcase_24 | TLE | - |
testcase_25 | -- | - |
testcase_26 | -- | - |
testcase_27 | -- | - |
testcase_28 | -- | - |
testcase_29 | -- | - |
testcase_30 | -- | - |
testcase_31 | -- | - |
testcase_32 | -- | - |
testcase_33 | -- | - |
testcase_34 | -- | - |
testcase_35 | -- | - |
testcase_36 | -- | - |
testcase_37 | -- | - |
testcase_38 | -- | - |
testcase_39 | -- | - |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; using System.Collections.Generic; using System.Text; using System.Linq; class Program { public void Proc() { Reader.IsDebug = false; int lineCount = int.Parse(Reader.ReadLine()); int inputCount = int.Parse(Reader.ReadLine()); Dictionary<int, int> dic = new Dictionary<int, int>(); List<int> numList = new List<int>(); int ans = lineCount; for (int i = 1; i <= lineCount; i++) { numList.Add(i-1); } List<AmidaLine> amidaList = new List<AmidaLine>(); for (int i = 0; i < inputCount; i++) { int[] inpt = Reader.GetInt(); AmidaLine al = new AmidaLine(inpt[0]-1, inpt[1]-1, i); amidaList.Add(al); } for (int i = 0; i < lineCount; i++) { int pos = -1; int idx = i; for (int j = 0; j < inputCount; j++) { List<AmidaLine> select = new List<AmidaLine>(amidaList.FindAll(a => (a.Line1 == idx || a.Line2 == idx) && a.Pos > pos).OrderBy(b => b.Pos)); if (select.Count == 0) { break; } pos = select[0].Pos; idx = select[0].Goto(idx); } dic.Add(i, idx); } int[] target = numList.ToArray(); int[] conv = new int[target.Length]; for (int i = 0; i < int.MaxValue; i++) { conv = new int[target.Length]; bool isMatch = true; for (int j = 0; j < target.Length; j++) { conv[dic[j]] = target[j]; if (isMatch && dic[j] != target[j]) { isMatch = false; } } target = conv; if (isMatch) { ans = i + 1; break; } } Console.WriteLine(ans); } public class AmidaLine { public int Line1; public int Line2; public int Pos; public int Goto(int from) { if (from == Line1) { return Line2; } return Line1; } public AmidaLine(int l1, int l2, int p) { this.Line2 = l2; this.Line1 = l1; this.Pos = p; } } public class Reader { public static bool IsDebug = true; private static String PlainInput = @" 100 449 99 100 89 90 71 72 7 8 9 10 92 93 7 8 80 81 96 97 31 32 62 63 13 14 29 30 16 17 35 36 96 97 23 24 37 38 54 55 88 89 31 32 38 39 88 89 63 64 68 69 95 96 1 2 13 14 4 5 2 3 34 35 13 14 14 15 93 94 60 61 46 47 90 91 2 3 26 27 79 80 65 66 47 48 40 41 69 70 34 35 90 91 96 97 15 16 31 32 55 56 96 97 48 49 27 28 79 80 26 27 58 59 1 2 84 85 4 5 14 15 81 82 34 35 67 68 89 90 80 81 6 7 26 27 91 92 8 9 95 96 91 92 21 22 92 93 82 83 61 62 98 99 7 8 40 41 37 38 31 32 23 24 94 95 60 61 52 53 82 83 77 78 90 91 84 85 58 59 47 48 90 91 43 44 26 27 78 79 30 31 50 51 95 96 39 40 15 16 70 71 35 36 67 68 58 59 1 2 50 51 15 16 99 100 18 19 38 39 66 67 91 92 10 11 19 20 16 17 66 67 63 64 45 46 70 71 56 57 58 59 71 72 37 38 94 95 43 44 73 74 99 100 83 84 36 37 54 55 17 18 27 28 69 70 45 46 14 15 22 23 92 93 71 72 27 28 35 36 2 3 63 64 51 52 63 64 10 11 27 28 16 17 25 26 91 92 77 78 98 99 32 33 5 6 33 34 70 71 63 64 71 72 33 34 38 39 16 17 1 2 72 73 22 23 19 20 24 25 23 24 90 91 96 97 65 66 45 46 97 98 13 14 87 88 12 13 58 59 19 20 91 92 21 22 56 57 8 9 55 56 52 53 35 36 58 59 57 58 87 88 87 88 6 7 6 7 94 95 61 62 30 31 40 41 18 19 82 83 15 16 36 37 99 100 64 65 68 69 22 23 67 68 82 83 17 18 25 26 19 20 65 66 68 69 40 41 40 41 73 74 97 98 43 44 38 39 80 81 67 68 11 12 84 85 8 9 9 10 81 82 93 94 58 59 83 84 87 88 69 70 97 98 54 55 98 99 51 52 3 4 94 95 21 22 25 26 80 81 24 25 35 36 73 74 37 38 32 33 54 55 37 38 3 4 15 16 87 88 38 39 34 35 32 33 98 99 96 97 98 99 37 38 92 93 6 7 61 62 81 82 91 92 78 79 27 28 87 88 31 32 15 16 22 23 44 45 2 3 48 49 61 62 44 45 89 90 13 14 22 23 40 41 64 65 78 79 77 78 80 81 38 39 42 43 40 41 47 48 46 47 73 74 60 61 76 77 71 72 57 58 95 96 95 96 8 9 27 28 97 98 69 70 28 29 49 50 37 38 69 70 79 80 12 13 90 91 51 52 86 87 75 76 74 75 9 10 42 43 59 60 53 54 31 32 19 20 31 32 62 63 5 6 76 77 95 96 39 40 77 78 56 57 32 33 60 61 83 84 93 94 58 59 3 4 65 66 41 42 14 15 84 85 87 88 63 64 61 62 81 82 8 9 50 51 60 61 17 18 37 38 56 57 89 90 8 9 84 85 4 5 75 76 47 48 82 83 92 93 20 21 48 49 85 86 57 58 26 27 44 45 44 45 42 43 68 69 70 71 29 30 14 15 32 33 10 11 64 65 45 46 13 14 94 95 71 72 64 65 59 60 34 35 15 16 54 55 10 11 77 78 80 81 44 45 62 63 9 10 95 96 9 10 23 24 30 31 87 88 89 90 29 30 62 63 7 8 17 18 68 69 73 74 73 74 83 84 50 51 45 46 81 82 47 48 89 90 61 62 28 29 51 52 36 37 49 50 28 29 84 85 14 15 56 57 80 81 80 81 91 92 60 61 62 63 76 77 27 28 70 71 15 16 8 9 49 50 25 26 21 22 44 45 59 60 91 92 72 73 30 31 8 9 8 9 83 84 48 49 18 19 16 17 1 2 32 33 48 49 37 38 66 67 23 24 44 45 27 28 67 68 85 86 14 15 48 49 82 83 4 5 56 57 64 65 36 37 21 22 97 98 4 5 91 92 16 17 56 57 "; private static System.IO.StringReader Sr = null; public static string ReadLine() { if (IsDebug) { if (Sr == null) { Sr = new System.IO.StringReader(PlainInput.Trim()); } return Sr.ReadLine(); } else { return Console.ReadLine(); } } public static int[] GetInt(char delimiter = ' ', bool trim = false) { string inptStr = ReadLine(); if (trim) { inptStr = inptStr.Trim(); } string[] inpt = inptStr.Split(delimiter); int[] ret = new int[inpt.Length]; for (int i = 0; i < inpt.Length; i++) { ret[i] = int.Parse(inpt[i]); } return ret; } } static void Main() { Program prg = new Program(); prg.Proc(); } }