Cho trước một danh sách rỗng. Người ta xét hai thao tác trên danh sách đó:
• Thao tác "+V" (ở đây V là một số tự nhiên ≤ 109): Nếu danh sách đang có ít hơn 15000 phần tử thì thao tác này bổ sung thêm phần tử V vào danh sách; Nếu khơng, thao tác này khơng có hiệu lực.
• Thao tác "-": Nếu danh sách đang khơng rỗng thì thao tác này loại bỏ tất cả các phần tử lớn
nhất của danh sách; Nếu không, thao tác này khơng có hiệu lực
Ví dụ: Với danh sách ban đầu là rỗng:
• Nếu ta thực hiện liên tiếp các thao tác: +1, +3, +2, +3 ta sẽ được danh sách (1, 3, 2, 3) • Thực hiện thao tác -, ta sẽ được danh sách (1, 2)
• Thực hiện hai thao tác +4, ta sẽ được danh sách (1, 2, 4, 4) • Thực hiện thao tác -, ta sẽ được danh sách (1, 2)
• Tiếp tục với các thao tác +2, +9, +7, +8, ta sẽ được danh sách (1, 2, 2, 9, 7, 8) • Cuối cùng thực hiện thao tác -, ta còn lại danh sách (1, 2, 2, 7, 8)
Vấn đề đặt ra là cho trước một dãy không quá 100000 thao tác, hãy xác định những giá trị số
nào còn lại trong danh sách, mỗi giá trị chỉ được liệt kê một lần.
Dữ liệu: Vào từ file văn bản IO.INP
• Gồm nhiều dịng, mỗi dòng ghi một thao tác. Thứ tự các thao tác trên các dòng được liệt kê theo
đúng thứ tự sẽ thực hiện.
Kết quả: Ghi ra file văn bản IO.OUT
• Dịng 1: Ghi số lượng những giá trị cịn lại trong danh sách. • Dịng 2: Liệt kê những giá trị đó
Các số trên một dịng của Input/Output file được ghi cách nhau ít nhất một dấu cách.
Ví dụ: IO.INP IO.OUT +1 +3 +2 +3 - +4 +4 - +2 +9 4 8 7 2 1
108. HỘI CHỢ
Bản đồ hội chợ là một hình chữ nhật được chia thành lưới ô vuông đơn vị kích thước mxn. Mỗi ô tượng trưng cho một gian hàng. Đến thăm gian hàng (i, j) thì phải trả một số tiền là aij.
Những cửa vào hội chợ được đặt ở những gian hàng nằm trên biên trái; còn những lối ra của hội
chợ được đặt ở những gian hàng nằm trên biên phải. Từ một gian hàng bất kỳ có thể đi sang một
trong những gian hàng chung cạnh với gian hàng đó.
u cầu: Hãy tìm một đường đi thăm hội chợ (từ một cửa vào tới một lối ra) sao cho tổng số tiền phải trả là ít nhất.
Ràng buộc: m, n và các số aij là những số tự nhiên không quá 100. (m ≥ 1, n ≥ 2)
5 1 1 1 17 9 7 7 1 12 9 7 7 1 12 9 2 1 1 10 10 10 1 10 10 10 10 1 2 3 10 10 10 10 10 Dữ liệu: Vào từ file văn bản FAIR.INP
• Dịng 1: Chứa hai số m, n
• m dịng tiếp theo, dịng thứ i chứa n số, số thứ j là aij.
Kết quả: Ghi ra file văn bản FAIR.OUT
• Dịng 1: Ghi tổng số tiền phải trả.
• Các dịng tiếp theo mỗi dòng ghi chỉ số hàng và chỉ số cột của một ô trên đường đi. Thứ tự các ô
được liệt kê trên những dòng này phải theo đúng thứ tự trên hành trình: Bắt đầu từ một cửa vào,
kết thúc là một lối ra.
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ụ: FAIR.INP FAIR.OUT 6 5 5 1 1 1 17 9 7 7 1 12 9 2 1 1 10 10 10 1 10 10 10 10 1 2 3 10 10 10 10 10 18 1 1 1 2 1 3 1 4 2 4 3 4 3 3 4 3
109. SERIE A
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ía báo chí.
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 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