Trong thời đại ngày nay, thông
tin cá nhân của mỗi người dễ dàng bị xâm nhập bởi rất nhiều công nghệ hiện đại
dùng nghe lén. Chính vì vậy, một đôi bạn muốn bảo mật thông tin cho nhau đã có
sáng kiến nghĩ ra cách trao nhau những thông điệp mà người khác đọc hoặc nghe
được thì không hiểu gì. Thông điệp của họ là một câu với nhiều từ được phân biệt
bởi ký tự trắng (dấu cách) và được sắp xếp lộn xộn để trở thành câu vô nghĩa. Để
hiểu nội dung một thông điệp của người bạn gửi cho mình, hai người bạn đã quy ước
trước một bộ mã là một dãy số nguyên dương có số lượng tương ứng với số từ của
thông điệp nhằm giải mã thành câu có ý nghĩa.
- Dữ
liệu vào: Đọc từ file văn bản GIAIMA.INP
gồm hai dòng:
+
Dòng thứ nhất ghi một chuỗi ký tự có số lượng không quá 50 từ, mỗi từ không quá
30 ký tự.
+
Dòng thứ hai ghi bộ mã gồm một dãy các số nguyên dương đôi một khác nhau để giải
mã thông điệp trên.
- Dữ
liệu ra: File văn bản GIAIMA.OUT
gồm một dòng ghi câu đã được giải mã từ thông điệp đã cho.
Ví dụ:
GIAIMA.INP |
GIAIMA.OUT |
luon chuc hoc ban gioi luon 2 4 1 6 3 5 |
chuc ban luon luon hoc gioi |
CODE THAM KHẢO:
program Giai_Ma;
var Tex:array[1..101] of string;
key: array[1..101] of byte;
S,S1:string;
n,i:byte;
fi,fo:text;
procedure tachtu;
var s1: string; i,M: byte;
begin
M:=0; S:=S+' '; s1:='';
for i:=1 to length(s) do
begin
if (s[i]=#32) and (length(s1)>0) then
begin
M:=M+1;
Tex[M]:=S1;
s1:='';
end
else s1:=s1+s[i];
end;
end;
begin
assign(fi,'GIAIMA.INP'); reset(fi);
readln(fi,S);
n:=0;
while not eoln(fi) do
begin
n:=n+1;
read(fi,key[n]);
end;
assign(fo,'GIAIMA.OUT'); rewrite(fo);
tachtu;
for i:=1 to n do write(fo,tex[Key[i]],' ');
close(fi); close(fo);
end.
Đăng nhận xét