Skip to content

Latest commit

 

History

History
75 lines (57 loc) · 1020 Bytes

1351.-mi-ma-suo.md

File metadata and controls

75 lines (57 loc) · 1020 Bytes

1351. 密码锁

package main

import (
    "fmt"
    )
    
    
func max( a, b int ) int {
    
    if a > b {
        return a
    }
    return b 
    
}
    
func min(a,b int) int {
    if a < b {
        return a
    }
    return b
}
    
func abs( a, b int ) int {
    if a > b {
        return a - b
    }
    return b - a
}

func match (N int) int {
    res := 1
    for i:= 0 ; i < 3 ;i++ {
        res *= min(N,5)
    }
    return res
}

func both (A ,B []int , N int) int {
    res := 1
    for i := range A {
        d := min(abs(A[i] , B[i]) , N - abs(A[i] ,B[i]))
        res *= min(N,max(5 - d, 0))
    }

    return res
}
    

func main () {
    var N int
    fmt.Scanf("%d",&N)
    
    var A = make([]int, 3)
    var B = make([]int, 3)
    for i := 0 ; i < 3 ; i++ {
        fmt.Scanf("%d",&A[i])
    }
    for i := 0 ; i < 3 ; i++ {
        fmt.Scanf("%d",&B[i])
    }
    
    ans := 0 
    ans += match(N)
    ans += match(N)
    ans -= both(A, B , N)
    fmt.Println(ans)
    
    
}