DÃY SỐ TƯƠNG THÍCH

237 views
Skip to first unread message

tienph...@gmail.com

unread,
Feb 20, 2013, 5:06:57 AM2/20/13
to thcsthait...@googlegroups.com

:  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

 

tienph...@gmail.com

unread,
Feb 20, 2013, 5:08:33 AM2/20/13
to thcsthait...@googlegroups.com, tienph...@gmail.com
Lời giải tham khảo 

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.


 
 
Reply all
Reply to author
Forward
0 new messages