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

Xếp chỗ ngồi

Đề bài

Mô tả

Một lớp có n học sinh (với n chẵn), được đánh số từ 1 đến n. Lớp có n/2 bàn, mỗi bàn ngồi đúng hai học sinh: một người ngồi bên trái, một người ngồi bên phải.

Thầy giáo muốn xếp chỗ sao cho thỏa mãn đồng thời hai điều kiện:

  1. Hai học sinh ngồi cùng một bàn không được có số hiệu chênh nhau đúng 1 (vì họ hay nói chuyện riêng).
  2. Không được để một học sinh thuận tay phải ngồi bên trái và một học sinh thuận tay trái ngồi bên phải của cùng một bàn (vì họ sẽ chạm khuỷu tay nhau). Mọi trường hợp còn lại đều chấp nhận được.

Hãy tìm một cách xếp chỗ bất kỳ thỏa mãn cả hai điều kiện. Dữ liệu vào luôn đảm bảo tồn tại ít nhất một cách xếp hợp lệ.

Dữ liệu vào

  • Dòng đầu chứa số nguyên chẵn n: số học sinh trong lớp.
  • Dòng thứ hai chứa đúng n ký tự in hoa L hoặc R. Nếu ký tự thứ iL thì học sinh i thuận tay trái, ngược lại học sinh i thuận tay phải.

Dữ liệu ra

In ra n/2 dòng, mỗi dòng hai số nguyên: số hiệu của hai học sinh ngồi cùng một bàn. Số đầu tiên là học sinh ngồi bên trái, số thứ hai là học sinh ngồi bên phải.

Nếu có nhiều đáp án, in ra đáp án bất kỳ.

Ràng buộc

  • 4n100
  • n chẵn
  • Chuỗi mô tả tay thuận chỉ gồm các ký tự LR

Ví dụ

Input Output Giải thích
4
RRLL
3 1
4 2
Bàn 1 xếp học sinh 3 (tay trái) bên trái và học sinh 1 (tay phải) bên phải, hiệu số hiệu là 21 và cặp (trái, phải) không phải dạng (R, L). Bàn 2 tương tự với cặp (4,2). Nếu xếp (1,3) thì học sinh 1 thuận tay phải ngồi bên trái còn học sinh 3 thuận tay trái ngồi bên phải, vi phạm điều kiện thứ hai.
6
LLRLLL
1 4
2 5
6 3
Ba bàn ghép các cặp (1,4), (2,5), (3,6), mọi cặp đều chênh nhau 3 nên không vi phạm điều kiện thứ nhất. Riêng cặp (3,6) có học sinh 3 thuận tay phải và học sinh 6 thuận tay trái, nên phải đảo lại thành (6,3).

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0