結果
| 問題 |
No.1707 Simple Range Reverse Problem
|
| ユーザー |
ID 21712
|
| 提出日時 | 2025-07-08 03:09:35 |
| 言語 | Go (1.23.4) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,304 bytes |
| コンパイル時間 | 12,249 ms |
| コンパイル使用メモリ | 236,880 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2025-07-08 03:09:50 |
| 合計ジャッジ時間 | 13,524 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 17 WA * 1 |
ソースコード
package main
import . "fmt"
import . "slices"
func main() {
var t int
Scan(&t)
for ; t > 0; t-- {
var n int
Scan(&n)
a := make([]int,n*2)
p1, pn := 0, 0
for i := range a {
Scan(&a[i])
if i > 0 && a[i] == 1 {
p1 = i
}
if a[i] == n && i+1 < n*2 {
pn = i
}
}
ok := true
if p1+1 == pn {
for i,j := 0,p1; i<=j; i,j=i+1,j-1 {
ok = ok&& a[i]==i+1&&a[i]==a[j]
}
for i,j := pn,n*2-1; i<=j; i,j=i+1,j-1 {
ok = ok&& a[j]==j+1-n&&a[i]==a[j]
}
} else if pn == 1 {
for i,j := pn,n*2-1; i<=j; i,j=i+1,j-1 {
ok = ok&& a[j]==j+1-n&&a[i]==a[j]
}
} else if p1 == n*2-2 {
for i,j := 0,p1; i<=j; i,j=i+1,j-1 {
ok = ok&& a[i]==i+1&&a[i]==a[j]
}
} else {
for i := 0; i < n; i++ {
ok = ok && a[i]==i+1&&a[i]==a[i+n]
}
}
Sort(a)
for i := 0; i < n; i++ {
ok = ok && a[i*2]==i+1 && a[i*2]==a[i*2+1]
}
if ok {
Println("Yes")
} else {
Println("No")
}
}
}
func check() {
n := 9
xs := make([]int, n*2)
for i := range xs {
xs[i] = (i%n)+1
}
m := map[string]bool{}
for i, x1 := range xs {
for j, x2 := range xs {
if x1 == x2 && i < j{
Reverse(xs[i:j+1])
m[Sprint(xs)] = true
Reverse(xs[i:j+1])
}
}
}
Println(len(m))
if len(m) < 20 {
for k, _ := range m {
Println(k)
}
}
}
ID 21712