: DÃY SỐ TƯƠNG THÍCH
Cho 2 dãy số nguyên{aN} , {bN}(1<N≤10000, 1≤ai,bi≤8000). Hai dãy số gọi là tương thích nếu:
+ Nếu vị trí I có hai giá trị ai, bi thì bất kì j ≠ i mà ai=aj => bi=bj.
+ Nếu vị trí I có hai giá trị ai, bi thì bất kì j ≠ i mà ai≠aj => bi≠bj.
Yêu cầu: hãy kiểm tra hai dãy {aN},{bN} có tương thích ko?
Dữ liệu: vào từ file văn bản DAYSO.INP:
- Dòng đầu ghi số N.
- Dòng thứ 2 ghi N số nguyên của dãy số {aN}
- Dòng thứ 3 ghi N số nguyên của dãy số {bN}
(các số trên một dòng ghi cách nhau một dấu cách )
Kết quả: ghi ra file văn bản DAYSO.OUT:
Ghi số 1 nếu tương thích,trong trường hợp ngược lại ghi số 0
VD:
|
Dayso.inp |
Dayso.out |
|
Dayso.inp |
Dayso.out |
|
4 1 2 3 1 3 2 1 3
|
1 |
|
4 1 2 3 1 1 2 3 3 |
0 |
type mang10000=array[1..10000] of integer;
var
a,b:mang10000;
n:integer;
f:text;
procedure input(var a,b:mang10000; var n:integer);
var
f:text;
i:integer;
begin
assign(f,'dayso.inp');
reset(f);
read(f,n);
for i:=1 to n do
read(f,a[i]);
readln(f);
for i:=1 to n do
read(f,b[i]);
close(f);
end;
function tuongthich(a,b:mang10000;n:integer):integer;
var
i,j:integer;
begin
tuongthich:=1;
i:=1;
j:=i+1;
repeat
while (j<=n) and (tuongthich=1) do
begin
if (a[i]<>a[j]) and (b[i]<>b[j]) or (a[i]=a[j]) and (b[i]=b[j]) then
j:=j+1
else
tuongthich:=0;
end;
i:=i+1;
j:=i+1;
until (i=n) or (tuongthich=0);
end;
{CHUONG TRINH CHINH}
BEGIN
input(a,b,n);
assign(f,'dayso.out');
rewrite(f);
write(f,tuongthich(a,b,n));
close(f);
END.