Bai 1:
uses crt;
var n,i,j,tong,t,x:longint; a:array[1..10000,1..10000]of longint; b:array[1..10000]of longint;
begin
clrscr;
write('N=');readln(n);
for i:=n-1 downto 1 do
begin
j:=i-1;
tong:=0;
repeat
inc(j);
inc(tong,j);
until (j=n)or(tong=n);
if tong=n then
begin
inc(t);
for x:=i to j do a[t,x-i+1]:=x;
b[t]:=j-i+1;
end;
end;
if t=0 then writeln('Khong the bieu hien') else writeln('Co ',t,' cach:');
for i:=1 to t do
begin
write('Cach ',i,':');
for j:=1 to b[i] do write(a[i,j],' ');
writeln;
end;
readln
end.
//////////////////////////////////////////////////////////////////////
Bai 2:
uses crt;
var d:text; i,j,n,k,m:longint; a:array[1..10000]of longint;
begin
clrscr;
assign(d,'SUM.inp');reset(d);
readln(d,n,k);
for i:=1 to n do read(d,a[i]);
close(d);
assign(d,'Sum.out');rewrite(d);
writeln(d,'Vi tri cua 2 goi co tong bang ',k);
for i:=1 to n do
for j:=i+1 to n do
if (i<>j)and(a[i]+a[j]=k) then writeln(d,i,' va ',j);
close(d);
end.