結果

問題 No.456 Millions of Submits!
ユーザー くれちーくれちー
提出日時 2017-05-16 17:59:39
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 4,109 ms / 4,500 ms
コード長 1,497 bytes
コンパイル時間 4,405 ms
コンパイル使用メモリ 105,856 KB
実行使用メモリ 24,448 KB
最終ジャッジ日時 2024-11-26 04:21:54
合計ジャッジ時間 18,413 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 29 ms
20,224 KB
testcase_01 AC 30 ms
20,096 KB
testcase_02 AC 31 ms
20,224 KB
testcase_03 AC 30 ms
20,224 KB
testcase_04 AC 30 ms
20,352 KB
testcase_05 AC 30 ms
20,096 KB
testcase_06 AC 30 ms
20,224 KB
testcase_07 AC 34 ms
20,480 KB
testcase_08 AC 36 ms
20,736 KB
testcase_09 AC 76 ms
24,320 KB
testcase_10 AC 76 ms
24,064 KB
testcase_11 AC 424 ms
24,320 KB
testcase_12 AC 4,109 ms
24,448 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.Collections.Generic;
using System.IO;
using System.Linq;
using static System.Math;

class Program
{
    static StreamWriter sw;

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

    static void Solve()
    {
        int m = int.Parse(Console.ReadLine());

        for (int i = 0; i < m; i++)
        {
            var tmp = Console.ReadLine().Split().Select(double.Parse);
            double a = tmp.ElementAt(0);
            double b = tmp.ElementAt(1);
            double t = tmp.ElementAt(2);
            double n;
            if (a == 0.0) n = Exp(Pow(t, 1.0 / b));
            else if (b == 0.0) n = Pow(t, 1.0 / a);
            else
            {
                double d; n = 2.0;
                do
                {
                    double t1 = Log(n);
                    double t2 = Pow(n, a - 2.0);
                    double t3 = Pow(t1, b - 2.0);
                    double d0 = t2 * n * n * t3 * t1 * t1 - t;
                    double d1 = t2 * n * t3 * t1 * (a * t1 + b);
                    double d2 = t2 * t3 * (((a * 2.0 - 1.0) * b + (a - 1.0) * a * t1) * t1 + (b - 1.0) * b);
                    d = d0 / (d1 - (d0 * d2) / (d1 * 2.0));
                    n -= d;
                }
                while (Abs(d) > 10e-10);
            }
            sw.WriteLine("{0:.#########}", n);
        }
    }
}
0