Submission #24648


Source Code Expand

module main;

import std.stdio; // この解答で使った項目: readln
import std.conv; // この解答で使った項目: to
import std.string; // この解答で使った項目: strip
import std.math; // この解答で使った項目: sqrt

void main()
{
    auto n = readln().strip().to!int();
    int[] x;
    int[] y;
    // 最大距離の2乗
    ulong max_distance = 0;
    foreach (i; 0..n)
    {
        // std.array.split: 文字列を空白文字で区切る。
        // std.array は自動的に import され、準備なしに使うことができる。
        string[] point = readln().strip().split();
        x ~= point[0].to!int();
        y ~= point[1].to!int();
        debug
        {
            writefln("(%d, %d)", x[i], y[i]);
        }
        // 0..i とすれば、いま追加した点の他にわたってループできる。
        foreach (j; 0..i)
        {
            // 現在の距離の2乗。三平方の定理より。累乗には演算子 ^^ を使う。かわいい。
            ulong current_distance = (x[j] - x[i]) ^^ 2 + (y[j] - y[i]) ^^ 2;
            debug
            {
                writefln("(point[%d], point[%d]).dist = %d.sqrt", j, i, current_distance);
            }
            // もし今までの最大距離より大きければ更新する: 最大や最小をループで求める時の常套手段。
            if (max_distance < current_distance)
            {
                max_distance = current_distance;
            }
        }
    }
    // std.math.sqrt: 平方根を求める。
    // 浮動小数点に変換し、その平方根を求めて出力する。
    writefln("%f", sqrt(to!double(max_distance)));
}

// simple version: http://arc004.contest.atcoder.jp/submissions/24639

Submission Info

Submission Time
Task A - 2点間距離の最大値 ( The longest distance )
User majiang
Language D (DMD 2.060)
Score 100
Code Size 1816 Byte
Status AC
Exec Time 22 ms
Memory 820 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 26
Set Name Test Cases
All 00_max.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt
Case Name Status Exec Time Memory
00_max.txt AC 21 ms 784 KB
00_sample_01.txt AC 21 ms 784 KB
00_sample_02.txt AC 22 ms 816 KB
00_sample_03.txt AC 22 ms 796 KB
00_sample_04.txt AC 20 ms 792 KB
00_sample_05.txt AC 21 ms 764 KB
01_rnd_00.txt AC 21 ms 784 KB
01_rnd_01.txt AC 21 ms 796 KB
01_rnd_02.txt AC 21 ms 764 KB
01_rnd_03.txt AC 20 ms 796 KB
01_rnd_04.txt AC 21 ms 796 KB
01_rnd_05.txt AC 21 ms 788 KB
01_rnd_06.txt AC 21 ms 792 KB
01_rnd_07.txt AC 21 ms 784 KB
01_rnd_08.txt AC 21 ms 792 KB
01_rnd_09.txt AC 21 ms 788 KB
01_rnd_10.txt AC 21 ms 796 KB
01_rnd_11.txt AC 21 ms 796 KB
01_rnd_12.txt AC 21 ms 788 KB
01_rnd_13.txt AC 21 ms 820 KB
01_rnd_14.txt AC 21 ms 788 KB
01_rnd_15.txt AC 21 ms 736 KB
01_rnd_16.txt AC 21 ms 788 KB
01_rnd_17.txt AC 21 ms 792 KB
01_rnd_18.txt AC 21 ms 768 KB
01_rnd_19.txt AC 21 ms 796 KB