WERTYU (UVa 10082)

View as PDF



Author:
Problem type
Points: 10 (p) Time limit: 2.0s Memory limit: 256M Input: stdin Output: stdout

Bàn phím QWERTY của bạn bị lệch sang phải: khi bạn gõ một ký tự, trên màn hình lại hiện ra ký tự nằm ngay bên phải nó trên bàn phím. Ví dụ, nếu bạn định gõ chữ I thì trên màn hình lại xuất hiện O, nếu định gõ M thì lại ra ,, v.v.

Bạn được cung cấp một đoạn văn bản đã bị gõ sai theo cách đó. Hãy viết chương trình khôi phục lại đoạn văn bản ban đầu, bằng cách thay thế mỗi ký tự bị lệch bằng ký tự nằm bên trái nó trên bàn phím QWERTY chuẩn.

Bố cục bàn phím QWERTY (chỉ xét các phím được phép xuất hiện):

`1234567890-=
QWERTYUIOP[]
ASDFGHJKL;'
ZXCVBNM,./

Quy ước

  • Chỉ xét các ký tự nằm trong bảng trên và khoảng trắng ' '.
  • Không có các phím điều khiển như Tab, Shift, Ctrl, hay Enter đặc biệt trong dữ liệu (ngoài việc ngắt dòng).
  • Ký tự khoảng trắng giữ nguyên.

Input Specification

Gồm nhiều dòng văn bản (có thể là rỗng). Mỗi dòng chỉ chứa:

  • Chữ số,
  • Dấu cách,
  • Chữ cái in hoa (ngoại trừ Q, A, Z),
  • Hoặc các dấu câu theo bố cục bàn phím QWERTY chuẩn (ngoại trừ dấu back-quote `).

Các phím dạng “từ” (Tab, BackSp, Control, …) không xuất hiện trong input.

Output Specification

Với mỗi dòng input, in ra dòng kết quả sau khi thay thế mỗi ký tự bằng ký tự ngay bên trái nó trên bàn phím QWERTY.
Dấu cách được in ra giữ nguyên.

Constraints

  • Số dòng không cố định.
  • Độ dài mỗi dòng \(\leq 200\) ký tự.
  • Tập ký tự tuân theo mô tả phần Input Specification.

Input Sample

O S, GOMR YPFSU/

Output Sample

I AM FINE TODAY.

Explanation

  • Ký tự O nằm bên phải I → chuyển thành I.
  • S nằm bên phải A → chuyển thành A.
  • Các ký tự khác tương tự, áp dụng theo hàng phím QWERTY chuẩn.

Comments

There are no comments at the moment.