結果
| 問題 |
No.1957 Xor Min
|
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2025-05-15 23:23:26 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 37 ms / 2,000 ms |
| コード長 | 750 bytes |
| コンパイル時間 | 13,206 ms |
| コンパイル使用メモリ | 240,612 KB |
| 実行使用メモリ | 7,844 KB |
| 最終ジャッジ日時 | 2025-05-15 23:23:42 |
| 合計ジャッジ時間 | 14,360 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 25 |
ソースコード
package main
import . "fmt"
func main() {
var a, b int
Scan(&a,&b)
Println(solve(a,b))
}
func solve(a, b int) int {
var x, y int
for i := 62; i >= 0; i-- {
c := 1 << i
switch {
case x+c <= a && y+c <= b:
if x < y {
x += c
} else {
y += c
}
case x+c <= a:
x += c
case y+c <= b:
y += c
}
}
return min(x,y,x^y)
}
func init() {
check()
}
func check() {
for a := 1; a <= 100; a++ {
for b := 1; b <= 100; b++ {
s1 := solve(a, b)
s2 := bruteforce(a, b)
if s1 != s2 {
panic(Sprintf("a=%d,b=%d,s1=%d,s2=%d",a,b,s1,s2))
}
}
}
}
func bruteforce(a, b int) int {
ans := 0
for x := 0; x <= a; x++ {
for y := 0; y <= b; y++ {
ans = max(ans, min(x,y,x^y))
}
}
return ans
}
ID 21712