結果

問題 No.816 Beautiful tuples
ユーザー keymoonkeymoon
提出日時 2019-04-19 23:07:44
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 28 ms / 1,500 ms
コード長 1,246 bytes
コンパイル時間 4,310 ms
コンパイル使用メモリ 110,956 KB
実行使用メモリ 19,328 KB
最終ジャッジ日時 2024-09-23 04:04:31
合計ジャッジ時間 2,371 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 27 ms
18,944 KB
testcase_01 AC 28 ms
18,944 KB
testcase_02 AC 27 ms
19,328 KB
testcase_03 AC 28 ms
18,944 KB
testcase_04 AC 28 ms
18,816 KB
testcase_05 AC 28 ms
19,072 KB
testcase_06 AC 28 ms
19,072 KB
testcase_07 AC 28 ms
19,072 KB
testcase_08 AC 28 ms
19,072 KB
testcase_09 AC 28 ms
18,944 KB
testcase_10 AC 28 ms
19,072 KB
testcase_11 AC 28 ms
19,072 KB
testcase_12 AC 27 ms
19,072 KB
testcase_13 AC 28 ms
19,072 KB
testcase_14 AC 27 ms
18,944 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;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Numerics;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using static System.Math;
using Debug = System.Diagnostics.Debug;
using MethodImplOptions = System.Runtime.CompilerServices.MethodImplOptions;
using MethodImplAttribute = System.Runtime.CompilerServices.MethodImplAttribute;


static class P
{
    static void Main()
    {
        var ab = Console.ReadLine().Split().Select(int.Parse).ToArray();
        var a = ab[0];
        var b = ab[1];
        //a < bとする
        //a==bの場合 c==aが成立
        //a以下の場合
        var max = (int)Ceiling(Sqrt(a + b));
        long cand = -1;
        for (int i = 1; i <= max; i++)
        {
            if ((a + b) % i != 0) continue;

            var op = (a + b) / i;
            if (a != i && b != i && (a + i) % b == 0 && (b + i) % a == 0)
            {
                Console.WriteLine(i);
                return;
            }
            if (a != op && b != op && (a + op) % b == 0 && (b + op) % a == 0)
            {
                cand = op;
            }
        }
        Console.WriteLine(cand);
    }
}
0