結果
| 問題 |
No.938 賢人を探せ
|
| コンテスト | |
| ユーザー |
kat0rik
|
| 提出日時 | 2020-01-06 13:00:03 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 405 ms / 2,000 ms |
| コード長 | 879 bytes |
| コンパイル時間 | 11,779 ms |
| コンパイル使用メモリ | 219,316 KB |
| 実行使用メモリ | 14,172 KB |
| 最終ジャッジ日時 | 2024-12-14 11:55:55 |
| 合計ジャッジ時間 | 15,757 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 21 |
ソースコード
package main
import (
"fmt"
"sort"
)
type student struct {
id int
name string
bad bool
}
type sts []student
func (s sts) Len() int {
return len(s)
}
func (s sts) Less(i, j int) bool {
return s[i].id < s[j].id
}
func (s sts) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
func main() {
var N int
fmt.Scan(&N)
students := make(map[string]student, 0)
for i := 0; i < N; i++ {
sta := new(student)
stb := new(student)
fmt.Scan(&sta.name, &stb.name)
if v, ok := students[sta.name]; !ok {
sta.id = i
sta.bad = true
students[sta.name] = *sta
} else {
v.bad = true
students[sta.name] = v
}
if _, ok := students[stb.name]; !ok {
stb.id = i
students[stb.name] = *stb
}
}
a := make([]student, 0)
for _, v := range students {
if !v.bad {
a = append(a, v)
}
}
sort.Sort(sts(a))
for i := range a {
fmt.Println(a[i].name)
}
}
kat0rik