Trang chủ Tin Học Lớp 8 Có 2 dội cờ vua A và B thi đấu...

Có 2 dội cờ vua A và B thi đấu với nhau. Mỗi đội cử ra n kì thủ, Mỗi kì thủ đội B chỉ đấu 1 trận và chỉ đấu với 1 kì thủ của đội A và ngược lại. Vậy có tất cả

Câu hỏi :

Có 2 dội cờ vua A và B thi đấu với nhau. Mỗi đội cử ra n kì thủ, Mỗi kì thủ đội B chỉ đấu 1 trận và chỉ đấu với 1 kì thủ của đội A và ngược lại. Vậy có tất cả n trận đấu. Đội thắn được 2 điểm, hai đội hoà mỗi đội nhận 1 điểm còn đội nào thua là 0 điểm. Cho đội B được quyền chọn cập thi đấu. Yêu cầu: Lập trình để đội B chọn được các cập thi đấu sao cho tổng số điểm của đội B là cao nhất. Cho biết trình độ của kì thủ thứ i của 2 đội A và B lần lượt là a[i] và b[i] (i=1,2,...,n) và giả sử trong thi đấu, hai kì thủ có trình độ bằng nhau sẽ hoà và kì thủ nào có trình độ cao hơn sẽ thắng. Dữ liệu vào: Ghi trên file văn bản CHESS.IN, gồm n+1 dòng: -Dòng đầu ghi số nguyên dương n,1<=n<=1000. -Trên dòng thứ i+1 (i<=i<=n) ghi hai số nguyên a[i], b[i] (1<=a[i],b[i]<=100), cách nhau 1 khoảng trắng. Dữ liệu ra: Ghi ra file văn bản CHESS.OUT gồm n+1 dòng: -Dòng đầu là số nguyên T là sum max mà đội B có thể đạt được. CHESS.INP CHESS.OUT 4 5 7 8 5 6 4 3 9 4

Lời giải 1 :

program vd;

 uses crt;

 var a,b,c : array[1..100] of integer;

     i,j,dem,n,k,v : integer;

     s : array[1..1000] of ansistring;

     ok : boolean;

     s1,s2 : string;

 begin

 read(n);

 for i:=1 to n do

   begin

    read(a[i]);

    readln(b[i]);

   end;

 for i:=1 to n-1 do

 for j:=i+1 to n do

 if a[i] > a[j] then

   begin

    k := a[i] ;

    a[i] := a[j];

    a[j] :=k;

   end;

 for i:=1 to n-1 do

 for j:=i+1 to n do

 if b[i] < b[j] then

   begin

    k := b[i] ;

    b[i] := b[j];

    b[j] :=k;

   end;

 v:=1; s1:=''; s2:='';  dem:=0; ok := false;

 for i:=1 to n do

   begin

     ok := false;

     for j:=n downto 1 do

        begin

         if b[i] > a[j] then

           begin

            str(a[j],s1); str(b[i],s2);

            s[v] := s1 +' ' + s2;

            inc(v);

            dem := dem+2;

            ok := true;

           end;

         if b[i] = a[j] then

           begin

            str(a[j],s1); str(b[i],s2);

            s[v] := s1 + ' ' + s2;

            inc(v);

            dem := dem + 1 ;

            ok := true;

           end;

         if ok = true then break;

        end;

   end;

 str(a[1],s1); str(b[n],s2);

 s[v] := s1+' '+s2;

 writeln(dem);

 for i:=1 to v do writeln(s[i]);

 end.

Thảo luận

-- giúp với a https://hoidap247.com/cau-hoi/2536848
-- a k hc c+ :))
-- pasca cũng đc a:>

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK