trang chủ / đề bài / voi08_gifts

Quà tết

Đề bài

Mô tả

Chuẩn bị đón năm mới, Công ty bánh kẹo Hương Dứa đã làm một tấm sôcôla cực lớn với mục đích ghi tên mình vào sách kỷ lục Ghi-nét đồng thời quảng bá thương hiệu trước công chúng. Tấm sôcôla có hình vuông kích thước 2k×2k, tạo thành lưới ô vuông 2k hàng và 2k cột. Các hàng được đánh số từ 0 đến 2k−1 từ trên xuống dưới, các cột được đánh số từ 0 đến 2k−1 từ trái sang phải. Ô nằm ở hàng i và cột j được gọi là ô (i,j). Sau buổi trưng bày giới thiệu sản phẩm, tấm sôcôla được cắt nhỏ, chia cho mọi người, mỗi người được một ô của chiếc bánh kỷ lục. Bộ phận tiếp thị đã ấn vào hai ô khác nhau (p,q) và (u,v) mỗi ô một đồng xu. Vị khách nào may mắn nhận được ô sôcôla có đồng xu sẽ được tặng rất nhiều sản phẩm độc đáo của công ty.

Vì chiếc bánh rất lớn nên công ty đã thiết kế một máy cắt bánh. Máy thực hiện dãy các thao tác cắt, bắt đầu từ chồng bánh chỉ gồm 1 tấm sôcôla ban đầu, mỗi thao tác gồm hai bước sau:

  • Bước 1: Cắt ngang song song với cạnh chồng bánh chia chồng sôcôla thành hai phần bằng nhau, úp chồng bánh bên dưới lên chồng bánh bên trên sao cho mép dưới đè lên mép trên.
  • Bước 2: Cắt dọc song song với cạnh chồng bánh chia chồng sôcôla thành hai phần bằng nhau, úp chồng bánh bên trái lên chồng bánh bên phải sao cho mép trái đè lên mép phải.

"Úp" nghĩa là lật nửa chồng bánh qua đường cắt: các tấm của nửa bị lật nằm lên trên nửa kia theo thứ tự ngược lại (tấm dưới cùng của nó thành tấm trên cùng), và mỗi tấm bị lật đối xứng qua đường cắt.

Như vậy sau mỗi lần thực hiện thao tác cắt, chiều dài và chiều rộng của các tấm sôcôla giảm đi một nửa. Sau k lần thực hiện thao tác cắt, các ô của tấm sôcôla sẽ được xếp thành một cột. Khách nhận bánh xếp hàng một và được đánh số từ 1 trở đi, người thứ m sẽ nhận được miếng sôcôla thứ m từ trên xuống dưới (1≤m≤2k×2k).

Ví dụ, với k=1 và đồng xu được ấn vào các ô (0,0), (1,1), việc thực hiện thao tác cắt diễn ra như sau:

  • Ban đầu: một tấm gồm hai hàng (0,0),(0,1) và (1,0),(1,1).
  • Sau bước 1: hàng dưới được úp lên hàng trên, chồng bánh gồm hai tấm, từ trên xuống: tấm (1,0),(1,1) rồi tấm (0,0),(0,1).
  • Sau bước 2: nửa trái (cột chứa (1,0) và (0,0)) được úp lên nửa phải, các ô xếp thành một cột, từ trên xuống: (0,0), (1,0), (1,1), (0,1).

Trong ví dụ này, vị khách thứ nhất và thứ ba sẽ là những người nhận được tặng phẩm của công ty.

Yêu cầu: Cho biết các số nguyên k,p,q,u,v. Hãy xác định số thứ tự của hai vị khách may mắn nhận được quà.

Dữ liệu vào

Gồm một dòng chứa 5 số nguyên k,p,q,u,v, các số cách nhau bởi dấu cách.

Dữ liệu ra

Một dòng chứa hai số nguyên là số thứ tự các vị khách may mắn: đầu tiên là số thứ tự của vị khách nhận ô (p,q), sau đó là số thứ tự của vị khách nhận ô (u,v). Hai số phải cách nhau đúng một dấu cách.

Ràng buộc

  • 1≤k≤40.
  • 0≤p,q,u,v≤2k−1.
  • Hai ô (p,q) và (u,v) khác nhau.

Subtasks

  • Subtask 1 (60% số test): 1≤k≤5.
  • Subtask 2 (40% số test): 5<k≤40.

Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.

Ví dụ

Input Output Giải thích
1 0 0 1 1 1 3 Các ô xếp từ trên xuống là (0,0), (1,0), (1,1), (0,1).
2 1 2 2 1 8 6 Với k=2, số thứ tự của các ô theo từng hàng là: 13,4,1,16 / 12,5,8,9 / 11,6,7,10 / 14,3,2,15. Ô (1,2) là 8, ô (2,1) là 6.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0