結果
| 問題 |
No.26 シャッフルゲーム
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-03-10 13:28:43 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 1,182 bytes |
| コンパイル時間 | 14,034 ms |
| コンパイル使用メモリ | 227,228 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-13 08:26:51 |
| 合計ジャッジ時間 | 11,942 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 |
ソースコード
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
// エントリポイント
func main() {
in := bufio.NewScanner(os.Stdin)
in.Scan()
// 最初に○印が付いているカップの位置
input1 := in.Text()
in.Scan()
// カップを入れ替えた回数
input2 := in.Text()
// 入れ替えるカップの位置番号
input3 := make([]string, 0)
for in.Scan() {
input3 = append(input3, in.Text())
}
fmt.Println(shuffleGame(input1, input2, input3))
}
// ○のついているカップの位置を特定する。
func shuffleGame(circleCupPos string, cupReplaceNum string, shuffleCupPos []string) string {
_ = cupReplaceNum
// カップ
cup := [3]bool{}
pos, _ := strconv.Atoi(circleCupPos)
cup[pos-1] = true
// 入れ替え
for _, v := range shuffleCupPos {
swaps := strings.Split(v, " ")
i, _ := strconv.Atoi(swaps[0])
j, _ := strconv.Atoi(swaps[1])
swap(&cup, i-1, j-1)
}
// trueの番地を探す
for i1, v2 := range cup {
if v2 == true {
return strconv.Itoa(i1 + 1)
}
}
return ""
}
// 配列のi番目とj番目を入れ替える。
func swap(cup *[3]bool, i int, j int) {
cup[i], cup[j] = cup[j], cup[i]
}