Bộ test tham khảo
BOCSOI Bốc sỏi
Giải
Duyệt từ trái qua phải, kiểm tra 2 kí tự kề nhau s[i] và s[i+1], nếu giống nhau thì kí tự sau phải xóa (ta chỉ cần tăng biến đếm, không cần thực hiện thao tác xóaCode
for i:=1 to n doif s[i]=s[i+1] then inc(k);
CODE 20 TEST
Const fi=’bocsoi.inp’;fo=’bocsoi.out’;
var s:string;
i,n,k:longint;
begin
assign(input,fi);reset(input);
assign(output,fo);rewrite(output);
readln(n);
readln(s);
for i:=1 to n do
if s[i]=s[i+1] then inc(k);
write(k);
close(input);close(output);
end.
Bài 2. BANGDX Bảng đối xứng (6 điểm)
Giải
Vì bảng 5 x 5 nên ô chính giữa bảng là ô (3, 3)Đọc bảng, tìm tọa độ ô (i, j) chứa số 1. Mỗi bước di chuyển ta có thể dịch ô (i, j) này sang một cột hoặc một hàng. Vậy để đưa ô (i, j) vào giữa ta tính tổng độ chênh lệch (hàng và cột) từ ô (i, j) đến ô (3, 3). Đó cũng chính là số thao tác phải di chuyển.
code
res:= abs(i-3) + abs(j - 3)
CODE
const fi='bangdx.inp';fo='bangdx.out';var
a,b,c,m,n : longint;
procedure nhap; //đoc file input va tim o chua so 1
begin
for a := 1 to 5 do begin
for b := 1 to 5 do begin
read (c);
if c = 1 then begin
end;
begin
assign(input,fi);reset(input);
assign(output,fo);rewrite(output);
for a := 1 to 5 do begin
for b := 1 to 5 do begin
read (c);
if c = 1 then begin
if a>3 then m := a-3 else m := 3-a;
if b>3 then n := b-3 else n := 3-b;
end;
end;
//readln();
end;
writeln (m+n);
close(input);close(output);
end.
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.