結果

問題 No.887 Collatz
ユーザー KuraKura
提出日時 2019-09-25 21:35:26
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 25 ms / 2,000 ms
コード長 4,266 bytes
コンパイル時間 4,386 ms
コンパイル使用メモリ 113,256 KB
実行使用メモリ 23,864 KB
最終ジャッジ日時 2023-10-23 23:09:13
合計ジャッジ時間 5,656 ms
ジャッジサーバーID
(参考情報)
judge14 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 24 ms
23,864 KB
testcase_01 AC 24 ms
23,864 KB
testcase_02 AC 24 ms
23,864 KB
testcase_03 AC 23 ms
23,856 KB
testcase_04 AC 25 ms
23,864 KB
testcase_05 AC 24 ms
23,864 KB
testcase_06 AC 25 ms
23,864 KB
testcase_07 AC 24 ms
23,860 KB
testcase_08 AC 24 ms
23,864 KB
testcase_09 AC 24 ms
23,864 KB
testcase_10 AC 24 ms
23,864 KB
testcase_11 AC 24 ms
23,864 KB
testcase_12 AC 24 ms
23,864 KB
testcase_13 AC 24 ms
23,864 KB
testcase_14 AC 24 ms
23,864 KB
testcase_15 AC 25 ms
23,864 KB
testcase_16 AC 24 ms
23,864 KB
testcase_17 AC 24 ms
23,864 KB
testcase_18 AC 24 ms
23,864 KB
testcase_19 AC 24 ms
23,864 KB
testcase_20 AC 24 ms
23,864 KB
testcase_21 AC 24 ms
23,864 KB
testcase_22 AC 24 ms
23,864 KB
testcase_23 AC 24 ms
23,864 KB
testcase_24 AC 25 ms
23,864 KB
testcase_25 AC 24 ms
23,864 KB
testcase_26 AC 24 ms
23,864 KB
testcase_27 AC 24 ms
23,864 KB
testcase_28 AC 24 ms
23,864 KB
testcase_29 AC 24 ms
23,864 KB
testcase_30 AC 24 ms
23,864 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
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.IO;
class Start
{
    static void Solve()
    {
        long n;Inl(out n);
        long max = n;
        long i = 0;
        while (n != 1)
        {
            if (n % 2 == 0) n /= 2;
            else n = n * 3 + 1;
            max = Max(max, n);
            i++;
        }
        Outl(i + "\n" + max);
    }

    static void Main()
    {
        var sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
        Console.SetOut(sw);
        Solve();
        Console.Out.Flush();
    }

    static void Inl(out long t) { t = long.Parse(Console.ReadLine()); }
    static void Inl(out string t) { t = Console.ReadLine(); }
    static void Inl(out char t) { t = Console.ReadLine()[0]; }
    static void Inl(out double t) { t = double.Parse(Console.ReadLine()); }
    static void Inl<T>(ref T[] t)
    {
        string[] s = Console.ReadLine().Split();
        Type type = typeof(T);
        int n = s.Length;
        if (type == LONG) for (int i = 0; i < n; i++) t[i] = (T)(object)long.Parse(s[i]);
        else if (type == STRING) for (int i = 0; i < n; i++) t[i] = (T)(object)s[i];
        else if (type == CHAR) for (int i = 0; i < n; i++) t[i] = (T)(object)s[i][0];
        else for (int i = 0; i < n; i++) t[i] = (T)(object)double.Parse(s[i]);
    }
    static void Inl<T, U>(out T t, out U u) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); }
    static void Inl<T, U, V>(out T t, out U u, out V v) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); In(out v, ref s, 2); }
    static void Inl<T, U, V, W>(out T t, out U u, out V v, out W w) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); In(out v, ref s, 2); In(out w, ref s, 3); }
    static void Inl<T, U, V, W, X>(out T t, out U u, out V v, out W w, out X x) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); In(out v, ref s, 2); In(out w, ref s, 3); In(out x, ref s, 4); }
    static void Inl<T, U, V, W, X, Y>(out T t, out U u, out V v, out W w, out X x, out Y y) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); In(out v, ref s, 2); In(out w, ref s, 3); In(out x, ref s, 4); In(out y, ref s, 5); }
    static void Inl<T, U, V, W, X, Y, Z>(out T t, out U u, out V v, out W w, out X x, out Y y, out Z z) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); In(out v, ref s, 2); In(out w, ref s, 3); In(out x, ref s, 4); In(out y, ref s, 5); In(out z, ref s, 6); }
    static void In<T>(out T t, ref string[] s, int i)
    {
        Type type = typeof(T);
        if (type == LONG) t = (T)(object)long.Parse(s[i]);
        else if (type == STRING) t = (T)(object)s[i];
        else if (type == CHAR) t = (T)(object)s[i][0];
        else t = (T)(object)double.Parse(s[i]);
    }
    static Type LONG = typeof(long);
    static Type STRING = typeof(string);
    static Type CHAR = typeof(char);

    static void Out<T>(T t) { Console.Write(t); }
    static void Outl<T>(T t) { Console.WriteLine(t); }
    static void Out(double d, int n) { string s = d.ToString("F" + n); Console.Write(s); }
    static void Outl(double d, int n) { string s = d.ToString("F" + n); Console.WriteLine(s); }
    static void Outl<T>(ref T[] t)
    {
        Out(t[0]);
        for (int i = 1; i < t.Length; i++) Out(" " + t[i]);
        Out('\n');
    }

    static void Swap<T>(ref T a, ref T b) { T c = a; a = b; b = c; }
    static void Sort<T>(ref T[] t) { Array.Sort(t); }
    static T Max<T>(params T[] t) where T : IComparable { T max = t[0]; for (int i = 1; i < t.Length; i++) if (max.CompareTo(t[i]) < 0) max = t[i]; return max; }
    static T Min<T>(params T[] t) where T : IComparable { T max = t[0]; for (int i = 1; i < t.Length; i++) if (max.CompareTo(t[i]) > 0) max = t[i]; return max; }
    struct Pair
    {
        public long a, b;
        public Pair(long a, long b) { this.a = a; this.b = b; }
    }
    static void aSort(ref Pair[] a) { Array.Sort(a, (x, y) => (int)(x.a - y.a)); }
    static void bSort(ref Pair[] a) { Array.Sort(a, (x, y) => (int)(x.b - y.b)); }
}
0