結果
| 問題 |
No.397 NO MORE KADOMATSU
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-07-15 23:05:26 |
| 言語 | Go (1.23.4) |
| 結果 |
TLE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 679 bytes |
| コンパイル時間 | 12,933 ms |
| コンパイル使用メモリ | 235,928 KB |
| 実行使用メモリ | 152,004 KB |
| 平均クエリ数 | 0.33 |
| 最終ジャッジ日時 | 2024-07-17 00:06:39 |
| 合計ジャッジ時間 | 16,907 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 TLE * 1 -- * 14 |
ソースコード
package main
import "fmt"
import "reflect"
type Swap struct {
u, v int
}
func (s Swap) String() string {
return fmt.Sprint(s.u, s.v)
}
func main() {
var N int
fmt.Scan(&N)
A := make([]int, N)
for i := range A {
fmt.Scan(&A[i])
}
var sw []Swap
preA := make([]int, N)
for {
if reflect.DeepEqual(preA, A) {
break
}
copy(preA, A)
for i := range A {
if N <= i+2 {
break
}
j := i + 1
k := j + 1
if (A[i] < A[j] && A[j] > A[k]) || (A[i] > A[j] && A[j] < A[k]) {
sw = append(sw, Swap{j, k})
A[j], A[k] = A[k], A[j]
}
}
}
fmt.Println(len(sw))
for i := range sw {
fmt.Println(sw[i])
}
var dummy int
fmt.Scan(&dummy)
}