trang chủ / bài tập / combolock

Ổ khóa mã số

Đề bài

Mô tả

Farmer John có một ổ khóa mã số với ba vòng quay, mỗi vòng được đánh số từ 1 đến N (1N100). Các vòng quay theo kiểu vòng tròn, nghĩa là số 1 và số N nằm cạnh nhau.

Ổ khóa có hai mã mở: một mã của Farmer John và một mã chính (master). Ổ khóa sẽ mở nếu cả ba vòng quay đều nằm trong phạm vi ±2 vị trí so với mã tương ứng (có thể là mã của Farmer John hoặc mã chính).

Ví dụ, với N=50, nếu mã của Farmer John là (1,2,3) và mã chính là (5,6,7), thì thiết lập (49,4,5) sẽ mở được khóa (vì 49 cách 1 đúng 2 vị trí trên vòng tròn, 4 cách 2 đúng 2 vị trí, và 5 cách 3 đúng 2 vị trí).

Hãy đếm số bộ ba thiết lập phân biệt có thể mở được ổ khóa.

Dữ liệu vào

  • Dòng đầu tiên: số nguyên N.
  • Dòng thứ hai: ba số nguyên là mã của Farmer John.
  • Dòng thứ ba: ba số nguyên là mã chính.

Dữ liệu ra

  • Một số nguyên duy nhất: số bộ ba thiết lập phân biệt có thể mở được ổ khóa.

Ràng buộc

  • 1N100

Ví dụ

Input Output Giải thích
50
1 2 3
5 6 7
249 Mỗi mã có 53=125 tổ hợp hợp lệ. Hai mã không trùng nhau nên tổng là 250. Tuy nhiên bộ (3,4,5) thỏa mãn cả hai mã nên bị đếm trùng, kết quả là 2501=249.
1
1 1 1
1 1 1
1 Chỉ có một giá trị có thể cho mỗi vòng quay nên chỉ có đúng 1 bộ ba.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0