\begin{array}{c} \color{#db1616}{\texttt{#Khoadang09}} \end{array}
*Một số điểm đặc biệt bạn cần lưu ý :
- Ở câu lệnh t=t/2 khi dịch thay vì dùng phép chia, mình dùng phép div (chia lấy nguyên), vì ở C++, khi chia số nguyên cho số nguyên, kết quả là số nguyên tương tự phép div
- Phép and trong C++ là && dịch sang Pascal thành and
- INT_MAX dịch sang Pascal là Maxint, có tác dụng trả về giá trị lớn nhất của kiểu dữ liệu
- Toán tử giảm t-- trong C++ dịch sang Pascal là hàm dec(t)
- Toán tử khác != trong C++ dịch sang Pascal là <>
- Câu lệnh cout << endl ; có tác dụng đưa con trỏ xuống dòng, dịch sang Pascal là writeln();
*Code sau dịch :
// không biết nó có tác dụng, nhưng mà chạy thử thì chạy ổn
var f, d, a :array [0..10001] of longint;
n, i, j, t : longint;
begin
readln(n);
t := 0 ;
for i := 1 to n do
begin
read(a[i]);
t := t + a[i];
end ;
t := t div 2 ;
// QHD
for i := 1 to t do
begin
f[i] := Maxint;
for j := 1 to t do
if (i>=a[j]) and (j>f[i-a[j]]) then
begin
f[i] := j ; break;
end ;
end ;
// truyvet
while (f[t]>n) do dec(t);
while t > 0 do
begin
d[f[t]] := 1 ;
t := t-a[f[t]];
end ;
for i := 1 to n do
if d[i] = 1 then write(a[i],' ');
writeln;
for i := 1 to n do
if d[i] <> 1 then write(a[i],' ');
writeln;
end.