結果

問題 No.1218 Something Like a Theorem
コンテスト
ユーザー ID 21712
提出日時 2026-06-04 14:22:05
言語 Go
(1.26.1)
コンパイル:
env GOCACHE=/tmp go build _filename_
実行:
./Main
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 1,038 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 12,453 ms
コンパイル使用メモリ 280,200 KB
実行使用メモリ 6,400 KB
最終ジャッジ日時 2026-06-04 14:22:30
合計ジャッジ時間 13,884 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_1
純コード判定待ち
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 16
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

package main

import . "fmt"

func main() {
	var n,z int
	Scan(&n,&z)
	if n>= 3 || z ==1 {
		Println("No")
		return
	}
	if n==1 {
		Println("Yes")
		return
	}

	s := map[int]bool{}
	for x := 1; x < z; x++ {
		s[x*x] = true
		if s[z*z-x*x] {
			Println("Yes")
			return
		}
	}
	Println("No")
}

/*
考察

なんか見たことあると思ったら
フェルマーの最終定理ぽい?
n >= 3は No ということ

n=1とn=2のケースだけ考えればよい

x,yは正整数なのでz=1のとき解なし
x^1+y^1=z^1=1
x^2+y^2=z^2=1

x,yは異なっている必要はない(そのような条件はない)ので
n=1の場合でz>1なら常に成立するx,yの組が存在するので常にYes
例えば(x,y)=(1,z-1)がある

n=2のとき
三平方の定理ぽい見た目
まぁ全探索?
x,yの組を全探索するとTLE
x,yとしてありうる値1~z-1の平方を計算していく計算結果をキーにセットに追加しz^2から計算結果引いた値がキーとしてセットに存在すればYes
かな

*/
0