Trở về đầu

foto1 foto2 foto3 foto4 foto5
Giảng viên
Nguyễn Tô Sơn - Thủ khoa Đại học Sư phạm Hà Nội
ĐT: 091.333.2869

HỌC TIN CÙNG THỦ KHOA

Thành công không phải đích đến, mà là cả một hành trình

Tìm kiếm

Mời các bạn Download code tại: Click here

1. File Input:Click here

- Dòng đầu tiên gồm hai số n và k.

- Dòng tiếp theo ghi n số là số kẹo mỗi gói.

2. File Output

- In ra tất cả các cách phân chia n gói kẹo thành k phần để số lượng kẹo các phần bằng nhau (không được bóc gói kẹo).

const fi = 'CHIAKEOQUAYLUI.INP';
      fo = 'CHIAKEOQUAYLUI.OUT';
      MAXN = 20;
      MAXK = 20;
var f: text;
    n, k: integer;
    a, soluongkeo: array [1..MAXN] of integer;
    s: array [1..MAXK] of integer; //so luong keo cua phan thu j
    dem: integer;


procedure Nhap;
var i: integer;
begin
        assign(f, fi); reset(f);
        readln(f, n, k);
        for i:= 1 to n do
                read(f, soluongkeo[i]);

        close(f);
        dem:= 0;
        for i:= 1 to k do
                s[i]:= 0;
end;

procedure InKQ;
var i, j: integer;
begin
        for i:= 2 to k do
                if s[i] <> s[1] then exit;

        inc(dem);
        writeln(f, 'Cach ', dem:3, ': ');
        for j:= 1 to k do
        begin
                write(f, 'Phan ', j, ': ');
                for i:= 1 to n do
                        if a[i] = j then
                                write(f, soluongkeo[i], '   ');
                writeln(f);
        end;
        writeln(f);
end;

procedure Try2(i: integer); // dien gia tri cho vi tri thu i
var j: integer;
begin
        for j:= 1 to k do
        begin
                a[i]:= j;
                s[j]:= s[j] + soluongkeo[i];
                if i = n then InKQ
                        else Try2(i+1);
                s[j]:= s[j] - soluongkeo[i];
        end;
end;

BEGIN
        Nhap;
        assign(f, fo); rewrite(f);
        Try2(1);
        close(f);
END.

Giảng viên Nguyễn Tô Sơn, Thủ khoa Đại học Sư phạm Hà Nội. Điện thoại: 091.333.2869