結果
| 問題 |
No.333 門松列を数え上げ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-01-15 23:06:41 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 2,635 bytes |
| コンパイル時間 | 10,814 ms |
| コンパイル使用メモリ | 219,304 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-10 20:34:44 |
| 合計ジャッジ時間 | 11,651 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 7 |
ソースコード
/* yukicoder My Practice
* author: Leonardone @ NEETSDKASU
*/
package main
import (
"bufio"; "os"; "strconv"; "strings"
"fmt"
)
func solve(mr *MyReader) {
a, b := I2(mr.Gis())
maxheight := 2000000000
c := 0
/* a が 2番目 */
// b > a > c の門松
if b > a && a > 1 {
c += a - 1
}
// c > a > b の門松
if a > b && a < maxheight {
c += maxheight - a
}
/* c が 2番目 */
// a > c > b の門松
if a > b {
c += a - b - 1
}
// b > c > a の門松
if b > a {
c += b - a - 1
}
fmt.Println(c)
}
//////////////////////////////////////////////////////////////////
// 別に fmt.Scanf() を使ってもいいんだけどね、無駄に定義しまくり
func Ti(s string) (v int) { v, _ = strconv.Atoi(s); return }
func Tl(s string) (v int64) { v, _ = strconv.ParseInt(s, 10, 64); return }
type MyReader struct { scn *bufio.Scanner }
func NewMyReader() (mr *MyReader) { mr = new(MyReader); mr.scn = bufio.NewScanner(os.Stdin); return }
func (mr *MyReader) Gs() string { mr.scn.Scan(); return mr.scn.Text() }
func (mr *MyReader) Gi() int { return Ti(mr.Gs()) }
func (mr *MyReader) Gl() int64 { return Tl(mr.Gs()) }
func (mr *MyReader) Gss() []string { return strings.Split(mr.Gs(), " ") }
func (mr *MyReader) Gis() (vs []int) { for _, v := range mr.Gss() { vs = append(vs, Ti(v)) }; return }
func (mr *MyReader) NGs(n int) (ss []string) { for i := 0; i < n; i++ { ss = append(ss, mr.Gs()) }; return }
func (mr *MyReader) NGi(n int) (vs []int) { for i := 0; i < n; i++ { vs = append(vs, mr.Gi()) }; return }
func (mr *MyReader) NGss(n int) (sss [][]string) { for i := 0; i < n; i++ { sss = append(sss, mr.Gss()) }; return }
func (mr *MyReader) NGis(n int) (vss [][]int) { for i := 0; i < n; i++ { vss = append(vss, mr.Gis()) }; return }
func Bind(vs []int, v ...*int) { for i := range v { *v[i] = vs[i] } }
func I2(a []int) (int, int) { return a[0], a[1] }
func I3(a []int) (int, int, int) { return a[0], a[1], a[2] }
func I4(a []int) (int, int, int, int) { return a[0], a[1], a[2], a[3] }
func I5(a []int) (int, int, int, int, int) { return a[0], a[1], a[2], a[3], a[4] }
func Min(v int, vs ...int) (r int) { r = v; for _, x := range vs { if x < r { r = x } }; return }
func Max(v int, vs ...int) (r int) { r = v; for _, x := range vs { if x > r { r = x } }; return }
func MinMax(v int, vs ...int) (mn, mx int) { mn, mx = v, v; for _, x := range vs { if x < mn { mn = x } else if x > mx { mx = x } }; return }
func main() { solve(NewMyReader()) }