Bài 15: Thao tác với tệp

0o0 Nhok kawaii 0o0

Một trò chơi dành cho nhiều đội chơi được Ban tổ chức quy định như sau: bắt đầu cuộc chơi, Ban tổ chức cho chạy N số trên màn hình từ trái sang phải và yêu cầu đội chơi nào trả lời nhanh nhất số cách chia dãy số trên thành nhiều dãy con nhất sao cho các dãy con có tổng bằng nhau.

Ví dụ: Trên màn hình chạy dòng 19 số: 1 0 2 0 0 3 1 1 1 0 2 1 0 0 2 1 2 0 1. Kết quả trả lời đúng là: tổng các số mỗi dãy con là 3, số dãy con nhiều nhất là 6, bao gồm các dãy con là: 1 0 2, 0 0 3, 1 1 1, 0 2 1, 0 0 2 1, 2 0 1

+Dữ liệu vào: File văn bản GAMESHOW.INP

- Dòng 1 chứa số nguyên dương N.

- Dòng 2 chứa N số chạy trên màn hình, các số cách nhau bởi dấu cách.

+ Dữ liệu ra: Ghi ra file văn bản GAMESHOW.OUT

- Dòng 1 là tổng các số của một dãy con.

- Dòng 2 là số K (số dãy con nhiều nhất chia được).

- Dòng 3 là các vị trí cuối cùng của từng dãy con, các số vị trí này cách nhau bởi dấu cách.

Ví dụ:

GAMESHOW.INP

GAMESHOW.OUT

19

1 0 2 0 0 3 1 1 1 0 2 1 0 0 2 1 2 0 1

3

6

3 6 9 12 16 19

Nguyễn Lê Phước Thịnh
3 tháng 2 2020 lúc 22:17

const fi='gameshow.inp';
fo='gameshow.out';
var f1,f2:text;
a,b:array[1..100]of integer;
n,i,tg,d,s,x,j,vtd,vt:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
{----------------------xu-ly------------------}
tg:=0;
for i:=1 to n do
tg:=tg+a[i];
for i:=n downto 1 do
if tg mod i=0 then
begin
d:=0;
s:=0;
x:=tg div i;
for j:=1 to n do
begin
s:=s+a[j];
if s=x then
begin
vt:=j;
inc(d);
b[d]:=vt;
s:=0;
end;
end;
if s=0 then
begin
b[d]:=n;
break;
end;
end;
writeln(f2,x);
writeln(f2,d);
for i:=1 to d do
write(f2,b[i],' ');
close(f1);
close(f2);
end.

Bình luận (0)
 Khách vãng lai đã xóa

Các câu hỏi tương tự
Felix MC-Gamer
Xem chi tiết
An Đinh
Xem chi tiết
Hân Cao
Xem chi tiết
Thùy Linh Ngô
Xem chi tiết
phạm quang huy
Xem chi tiết
33. PHAN THỊ HỒNG THẮM 1...
Xem chi tiết
Nguyễn Đức Anh Khoa
Xem chi tiết
Nguyễn Minh Anh
Xem chi tiết
Lưu Hương Ly
Xem chi tiết