109. SERIE A?easy
Giải bóng đá ngoại hạng Italia (Serie A) là giải bóng đá hấp dẫn nhất hành tinh, ở đây người ta được chứng kiến cuộc tranh tài của những đội bóng lớn, những danh thủ nổi tiếng thế giới và cả không khí cuồng nhiệt của các sân vận động cho tới tận những vòng đấu cuối cùng.
Với một giải bóng đá chuyên nghiệp như vậy thì công việc của ban tổ chức không dễ dàng chút nào, hàng tuần họ phải tổng hợp thông tin về các trận đấu để xếp lại thứ hạng các đội, và một sự nhầm lẫn dù rất nhỏ cũng có thể gây nên sự chỉ trích từ phải báo chí.
Yêu cầu: Biết thông tin về những trận đã đấu, hãy lập bảng thống kê thành tích của từng đội theo thứ tự từ cao xuống thấp. Cách xếp như sau: Với hai đội bất kỳ thì đội nào nhiều điểm hơn sẽ xếp trước, nếu hai đội bằng điểm thì đội nào có hiệu số Bàn thắng - Bàn thua cao hơn sẽ xếp trước, nếu vẫn bằng nhau về hiệu số bàn Thắng - Thua thì đội nào ghi được nhiều bàn thắng hơn sẽ xếp trước, còn nếu lại bằng nhau cả về số bàn thắng thì đội nào có tên (xếp theo vần ABC) nhỏ hơn sẽ xếp trước.
Thông tin chung về giải: mỗi đội chỉ ghi được tối đa 10 bàn trong một trận, giải được thi đấu theo thể thức vòng tròn hai lượt. Với mỗi trận, đội thắng được 3 điểm, đội hoà được 1 điểm, đội thua được 0 điểm. Tên của các đội hoàn toàn phân biệt.
Dữ liệu: Vào từ file văn bản SERIEA.INP
-
Dòng 1: Chứa số n là số đội bóng (2 n 1000)
-
n dòng tiếp theo, dòng thứ i ghi tên của đội thứ i (là xâu gồm đúng 3 chữ cái in hoa)
-
Các dòng tiếp theo, mỗi dòng ghi 4 thông tin của một trận đấu: n1, n2, g1, g2. Ở đây n1 và n2 là tên hai đội thi đấu, g1 là số bàn thắng của đội n1 ghi được, g2 là số bàn thắng của đội n2 ghi được trong trận đấu đó. Bốn thông tin này được ghi cách nhau đúng một dấu cách.
Kết quả: Ghi ra file văn bản SERIEA.OUT
Gồm n dòng, mỗi dòng ghi thông tin về một đội bóng sau khi đã sắp thứ hạng theo khuôn dạng sau:
Tên đội, Số trận đã đá, Điểm số, Số trận thắng, Số trận thua, Số trận hoà, Số bàn thắng, Số bàn thua, Hiệu số Bàn thắng - Bàn thua. Những thông tin này phải ghi cách nhau đúng một dấu cách
Ví dụ:
SERIEA.INP
|
|
SERIEA.OUT
|
7
JUV
MIL
ROM
BAR
INT
LAZ
UDI
JUV MIL 1 1
ROM BAR 4 1
JUV INT 2 1
JUV ROM 2 2
MIL JUV 3 2
LAZ BAR 5 2
ROM INT 1 2
MIL ROM 2 2
|
|
ROM 4 5 1 1 2 9 7 2
MIL 3 5 1 0 2 6 5 1
JUV 4 5 1 1 2 7 7 0
LAZ 1 3 1 0 0 5 2 3
INT 2 3 1 1 0 3 3 0
UDI 0 0 0 0 0 0 0 0
BAR 2 0 0 2 0 3 9 -6
|
Xét tất cả các hoán vị của dãy số tự nhiên (1, 2, …, n); (1 n 12).Giả sử rằng các hoán vị được sắp xếp theo thứ tự từ điển.
Ví dụ với n = 3, có 6 hoán vị:
-
1 2 3
-
1 3 2
-
2 1 3
-
2 3 1
-
3 1 2
-
3 2 1
Vấn đề đặt ra là: Cho trước một hoán vị (a1, a2, …, an), hãy cho biết số thứ tự q của hoán vị đó và ngược lại: Cho trước một số thứ tự p (1 p n!) hãy tìm dãy hoán vị (b1, b2, …, bn) mang số thứ tự p.
Dữ liệu: Vào từ file văn bản PERMUTE.INP
-
Dòng 1: Chứa n số a1, a2, …, an
-
Dòng 2: Chứa số p
Kết quả: Ghi ra file văn bản PERMUTE.OUT
-
Dòng 1: Ghi số q
-
Dòng 2: Ghi n số b1, b2, …, bn
Các số trên một dòng của Input / Output file ghi cách nhau ít nhất một dấu cách
Ví dụ:
PERMUTE.INP
|
|
PERMUTE.OUT
|
2 1 3
4
|
|
3
2 3 1
|
kho o doan 111. PHÉP COin ket qua
Xét dãy số nguyên dương a = (a1, a2, ..., an) (2 n 100; 1 ai 100). Ban đầu dãy số được viết theo thứ tự từ trái sang phải, từ a1 tới an.
Xét phép co R(i): Thay hai phần tử liên tiếp ai và ai+1 thành (ai - ai+1). Sau đó dãy được đánh chỉ số lại: Từ trái sang phải, bắt đầu từ 1.
Ví dụ: dãy a = (5, 1, 4, 2, 3)
Với phép co R(1) ta có a = (4, 4, 2, 3)
Với phép co R(3) ta có a = (4, 4, -1)
Với phép co R(2) ta có a = (4, 5)
Với phép co R(1) ta có a = (-1).
Yêu cầu: Cho trước dãy a và số k. Hãy tìm một dãy n - 1 phép co để biến dãy a thành (k). (Dãy a và số k được cho để luôn tồn tại ít nhất một phương án)
Dữ liệu: Vào từ file văn bản SEQ.INP
-
Dòng 1: Chứa hai số n, k
-
Dòng 2: Chứa n số a1, a2, ..., an.
Kết quả: Ghi ra file văn bản SEQ.OUT
Gồm n - 1 dòng, mỗi dòng ghi vị trí của một phép biến đổi, các phép biến đổi phải được liệt kê theo đúng thứ tự thực hiện
Ví dụ
SEQ.INP
|
|
SEQ.OUT
|
5 -1
5 1 4 2 3
|
|
4
3
1
1
|
Chia sẻ với bạn bè của bạn: |