結果

問題 No.3204 Permuted Integer
ユーザー amesyu
提出日時 2025-07-22 17:41:50
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 1,619 bytes
コンパイル時間 380 ms
コンパイル使用メモリ 82,476 KB
実行使用メモリ 84,172 KB
最終ジャッジ日時 2025-07-22 17:41:54
合計ジャッジ時間 4,559 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other TLE * 1 -- * 25
権限があれば一括ダウンロードができます

ソースコード

diff #

# Generated By Gemini 2.5 Pro

import sys

def solve():
    """
    1つのテストケースを解決する関数
    """
    # 標準入力からNを文字列として読み込む
    n_str = sys.stdin.readline().strip()
    if not n_str:
        return

    n_len = len(n_str)
    # Nの各桁の数字をソートして、比較の基準とする
    n_chars_sorted = sorted(n_str)

    # 探索する平方数の上限を計算する
    # i*i が N と同じ桁数以下である範囲で探す
    # i*i < 10**n_len  =>  i < sqrt(10**n_len)
    limit = int((10**n_len)**0.5)

    # i=0から順に探索し、最初に見つかったものが最小の平方数となる
    for i in range(limit + 1):
        square = i * i
        
        # 平方数をNと同じ桁数になるよう左側を'0'で埋める
        padded_square_str = str(square).zfill(n_len)

        # 桁の構成が同じかどうかをソートして比較する
        if sorted(padded_square_str) == n_chars_sorted:
            print(square)
            return

    # ループを抜けても見つからなかった場合
    print(-1)


def main():
    """
    メイン処理
    T個のテストケースを処理する
    """
    try:
        # テストケースの数を読み込む
        t_str = sys.stdin.readline()
        if not t_str:
            return
        T = int(t_str)
        
        # 各テストケースについてsolve()を呼び出す
        for _ in range(T):
            solve()
    except (IOError, ValueError):
        # 入力エラー処理
        return

if __name__ == "__main__":
    main()
0