結果

問題 No.3 ビットすごろく
ユーザー qwrtpsfgqwrtpsfg
提出日時 2017-08-09 18:37:39
言語 C#(csc)
(csc 3.9.0)
結果
WA  
実行時間 -
コード長 1,142 bytes
コンパイル時間 1,869 ms
コンパイル使用メモリ 110,796 KB
実行使用メモリ 26,216 KB
最終ジャッジ日時 2024-04-20 08:37:47
合計ジャッジ時間 3,818 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 23 ms
17,792 KB
testcase_01 AC 24 ms
17,664 KB
testcase_02 AC 24 ms
17,792 KB
testcase_03 AC 26 ms
18,048 KB
testcase_04 AC 25 ms
17,920 KB
testcase_05 AC 28 ms
18,560 KB
testcase_06 AC 26 ms
18,176 KB
testcase_07 AC 25 ms
17,920 KB
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 AC 27 ms
18,560 KB
testcase_13 AC 25 ms
17,920 KB
testcase_14 AC 28 ms
18,560 KB
testcase_15 AC 29 ms
18,688 KB
testcase_16 WA -
testcase_17 WA -
testcase_18 AC 24 ms
17,792 KB
testcase_19 WA -
testcase_20 WA -
testcase_21 AC 24 ms
17,792 KB
testcase_22 AC 28 ms
18,688 KB
testcase_23 AC 31 ms
18,944 KB
testcase_24 WA -
testcase_25 WA -
testcase_26 AC 24 ms
17,536 KB
testcase_27 WA -
testcase_28 WA -
testcase_29 WA -
testcase_30 WA -
testcase_31 AC 25 ms
17,792 KB
testcase_32 WA -
権限があれば一括ダウンロードができます
コンパイルメッセージ
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;

public class yukicoder{
    
    public static int move(int n)
    {
        string s = Convert.ToString(n, 2);
        int m = 0;
        
        foreach(char c in s)
        {
            if(char.IsNumber(c))
            {
                m += int.Parse(c.ToString());
            }
        }
        
        return m;
    }
    
    public static void Main(){
        int goal = int.Parse(Console.ReadLine());
        int[] board = new int[goal];
        List<int> usedcell = new List<int>();
        
        for(int i = 0; i < board.Length; i++)
        {
            board[i] = i + 1;
        }
        
        int now = 1;
        
        while(true)
        {
        	usedcell.Add(now);
        
            if(now == goal)
            {
                Console.WriteLine(usedcell.Count);
                break;
            }

			if((now + move(board[now - 1])) > goal)
			{
				now -= move(board[now - 1]);
				
				if(usedcell.Contains(now))
				{
					Console.WriteLine(-1);
					break;
				}
			} 
			else
			{
				now += move(board[now - 1]);
			}
	       
        }

    }
}
0