結果
| 問題 | No.548 国士無双 |
| コンテスト | |
| ユーザー |
fmhr
|
| 提出日時 | 2019-07-17 15:36:12 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 2,510 bytes |
| コンパイル時間 | 12,905 ms |
| コンパイル使用メモリ | 230,100 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-12-21 15:10:57 |
| 合計ジャッジ時間 | 14,004 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 24 |
ソースコード
package main
import (
"bytes"
"fmt"
"math"
"reflect"
"sort"
)
func main() {
T := "abcdefghijklm"
t := []byte(T)
var S string
fmt.Scan(&S)
s := []byte(S)
sort.Slice(s, func(i int, j int) bool { return s[i] < s[j] })
sort.Slice(t, func(i int, j int) bool { return t[i] < t[j] })
result := []byte("")
if reflect.DeepEqual(t, s) {
result = t
} else {
if len(s) == len(t) {
unused := []byte(nil)
for _, c := range t {
if bytes.IndexByte(s, c) == -1 {
unused = append(unused, c)
}
}
if len(unused) == 1 {
result = unused
}
}
}
if len(result) == 0 {
fmt.Println("Impossible")
} else {
for _, r := range result {
fmt.Println(string(r))
}
}
}
var dy = []int{0, 1, 0, -1}
var dx = []int{1, 0, -1, 0}
var inf = int(1e9)
func pow(a, b int) int {
return int(math.Pow(float64(a), float64(b)))
}
func lcm(a, b int) int {
return a * b / gcd(a, b)
}
func gcd(a, b int) int {
if a < b {
a, b = b, a
}
for b != 0 {
a, b = b, a%b
}
return a
}
func max(a ...int) int {
r := a[0]
for i := 0; i < len(a); i++ {
if r < a[i] {
r = a[i]
}
}
return r
}
func min(a ...int) int {
r := a[0]
for i := 0; i < len(a); i++ {
if r > a[i] {
r = a[i]
}
}
return r
}
func sum(a []int) (r int) {
for i := range a {
r += a[i]
}
return r
}
func abs(a int) int {
if a < 0 {
return -a
}
return a
}
type Pair struct {
a, b int
}
type pairs []Pair
func (p pairs) Len() int {
return len(p)
}
func (p pairs) Swap(i, j int) {
p[i], p[j] = p[j], p[i]
}
func (p pairs) Less(i, j int) bool {
if p[i].a == p[j].a {
return p[i].b < p[j].b
}
return p[i].a < p[j].a
}
// bug bug
// var nextReader func() []byte
//
// func init() {
// nextReader = newScanner()
// log.SetFlags(log.Lshortfile)
// }
//
// func newScanner() func() []byte {
// r := bufio.NewScanner(os.Stdin)
// r.Split(bufio.ScanWords)
// return func() []byte {
// r.Scan()
// return r.Bytes()
// }
// }
// func nextBytes() []byte {
// return nextReader()
// }
//
// func nextString() string {
// return string(nextReader())
// }
// func nextInt64() int64 {
// v, _ := strconv.ParseInt(string(nextReader()), 10, 64)
// return v
// }
// func nextInt() int {
// v, _ := strconv.Atoi(string(nextReader()))
// return v
// }
// func nextInts(n int) []int {
// r := make([]int, n)
// for i := 0; i < n; i++ {
// r[i] = nextInt()
// }
// return r
// }
// func nextFloat64() float64 {
// f, _ := strconv.ParseFloat(string(nextReader()), 64)
// return f
// }
fmhr