You are on page 1of 8

Cuộc thi Olympic Tin Học Sinh Viên cấp trường ĐHBKHN 2017

KHỐI SIÊU CÚP, 23/9/2017

LƯU Ý

Trong tất cả các bài:

• Dữ liệu vào từ thiết bị vào chuẩn (stdin)

• Kết quả ghi ra thiết bị ra chuẩn (stdout)

• Hạn chế bộ nhớ: 512 MB

Mục lục

SC01. Người giao hàng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2


SC02. Giá trị trội . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
SC03. Tìm số thứ tự . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
SC04. Khảo cổ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
SC05. Ghế sofa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Trang 1 trên 8
Cuộc thi Olympic Tin Học Sinh Viên cấp trường ĐHBKHN 2017
KHỐI SIÊU CÚP, 23/9/2017

Bài A. SC01. Người giao hàng

Chuyển phát hàng là một công việc quan trọng trong thương mại điện tử là lĩnh vực phát triển bùng nổ
trong thời gian hiện nay. Ta xét công việc của một nhân viên giao hàng của Công ty XYZ chuyên bán
hàng trên mạng. Nhân viên giao hàng cần phát các kiện hàng (được đóng gói trong các hộp cùng kích
thước) đến các khách hàng có địa chỉ trên một đại lộ có dạng một đường thẳng.
Nhân viên giao hàng sẽ nhận các kiện hàng tại trụ sở công ty ở vị trí x = 0, và cần chuyển phát hàng
đến n khách hàng, được đánh số từ 1 đến n. Biết xi và mi là vị trí của khách hàng i và số lượng kiện
hàng cần chuyển cho khách hàng này. Do các kiện hàng là khá cồng kềnh nên mỗi lần đi chuyển phát
nhân viên giao hàng chỉ có thể mang theo không quá k kiện hàng.
Nhân viên giao hàng xuất phát từ trụ sở, nhận một số (không quá k) kiện hàng và di chuyển theo đại
lộ để chuyển phát cho một số khách hàng. Khi giao hết các kiện hàng mang theo, nhân viên giao hàng
lại quay trở về trụ sở và lặp lại công việc nói trên cho đến khi chuyển phát được tất cả các kiện hàng
cho khách hàng. Sau khi kết thúc công việc chuyển phát, nhân viên phải quay trở lại trụ sở công ty để
nộp cho phòng kế toán tất cả các hóa đơn giao nhận có ký nhận của khách hàng. Giả thiết là: tốc độ di
chuyển của nhân viên là 1 đơn vị khoảng cách trên một đơn vị thời gian. Thời gian nhận hàng ở trụ sở
công ty và thời gian bàn giao hàng cho khách hàng được coi là bằng 0.
Yêu cầu: Giả sử thời điểm mà nhân viên giao hàng bắt đầu công việc là 0. Hãy giúp nhân viên giao
hàng tìm cách hoàn thành công việc đã mô tả ở trên tại thời điểm sớm nhất.

Dữ liệu vào

• Dòng đầu tiên chứa hai số nguyên dương được ghi cách nhau bởi dấu cách n và k (n ≤ 1000; k ≤ 107 ).

• Dòng thứ i trong số n dòng tiếp theo chứa hai số nguyên được ghi cách nhau bởi dấu cách xi
(|xi | ≤ 107 ) và mi (1 ≤ mi ≤ 107 ).

Kết quả
Ghi ra một số nguyên là thời điểm sớm nhất mà người giao hàng có thể hoàn thành nhiệm vụ của mình.

Ví dụ
test answer
4 10 42
-7 5
-2 3
5 7
9 5
7 1 1358000000000000
9400000 10000000
9500000 10000000
9600000 10000000
9700000 10000000
9800000 10000000
9900000 10000000
10000000 10000000

Trang 2 trên 8
Cuộc thi Olympic Tin Học Sinh Viên cấp trường ĐHBKHN 2017
KHỐI SIÊU CÚP, 23/9/2017

Bài B. SC02. Giá trị trội

Hoàng đang loay hoay tìm cách giải bài toán đếm sau. Cho một dãy N số nguyên, mỗi số nằm trong
khoảng từ 1 đến N . Ta cần dùng các khái niệm sau:

• Dãy con là một dãy gồm các phần tử liên tiếp trong dãy ban đầu.

• Một giá trị gọi là trội trong dãy K phần tử nếu như giá trị đó xuất hiện ít nhất [K/2] + 1 lần trong
dãy đó, trong đó ký hiệu [x] là phần nguyên của x (số nguyên lớn nhất nhỏ hơn hoặc bằng x).

Yêu cầu: Tính số lượng dãy con có chứa giá trị trội trong dãy đã cho.

Dữ liệu vào

• Dòng đầu chứa một số nguyên dương N ≤ 250000;

• Dòng thứ hai chứa N số nguyên, mỗi số trong khoảng từ 1 đến N , hai số liên tiếp được ghi cách
nhau bởi dấu cách.

Kết quả
Đưa ra một số là số lượng dãy con có chứa giá trị trội tìm được.

Ví dụ
test answer
6 10
1 2 1 2 3 2

Giải thích

• Có 6 dãy con 1 phần tử, mỗi dãy đều thoả mãn dãy chứa giá trị trội;

• 4 dãy con còn lại chứa giá trị trội là những dãy được gạch chân dưới đây:

121232
121232
121232
121232

Trang 3 trên 8
Cuộc thi Olympic Tin Học Sinh Viên cấp trường ĐHBKHN 2017
KHỐI SIÊU CÚP, 23/9/2017

Bài C. SC03. Tìm số thứ tự

Hùng quan tâm đến việc liệt kê lần lượt các bộ có thứ tự các số nguyên có dạng như sau:
(1); (1,1); (2); (1,1,1); (1,2); (2,1); (3); (1,1,1,1); (1,1,2); (1,2,1); (1,3); . . .
Thứ tự liệt kê các bộ theo các độ ưu tiên sau:

• thứ nhất là theo tổng các phần tử trong bộ. Nghĩa là bộ nào có tổng nhỏ hơn sẽ đứng trước;
• thứ hai là theo thứ tự từ điển của bộ. Nghĩa là nếu hai bộ có tổng bằng nhau thì ta xét đến thứ tự từ điển
của bộ. Bộ X = (x1 , x2 , . . . , xn ) gọi là đi trước bộ Y = (y1 , y2 , . . . , ym ) theo thứ tự từ điển nếu như hoặc là
x1 < y1 hoặc là tồn tại i sao cho:
– x1 = y1 , . . . , xi = yi và,
– hoặc i = n hoặc xi+1 < yi+1 .

Mỗi bộ được gắn với 1 số nguyên dương là số thứ tự của bộ đó theo thứ tự liệt kê nêu trên. Ví dụ:

• Bộ (1,1,2) có số thứ tự là 9;
• Bộ (3,1) có số thứ tự là 14.

Yêu cầu:

1. Cho một bộ, hãy xác định số thứ tự của nó.


2. Cho một số k hãy tìm bộ có số thứ tự là k.

Dữ liệu vào
Dòng đầu tiên chứa duy nhất một số nguyên dương Q ≤ 105 là số lượng truy vấn. Dòng thứ i trong số Q dòng
tiếp theo mô tả dữ liệu cho truy vấn thứ i:

• Nếu là truy vấn loại 1, dòng sẽ bắt đầu bởi số 1, tiếp theo là một số nguyên dương N và N số tiếp theo lần
lượt là các phần tử trong bộ cần tìm số thứ tự;
• Nếu là truy vấn loại 2, dòng sẽ bắt đầu bởi số 2 và tiếp theo là một số nguyên dương là số thứ tự cần tìm
bộ tương ứng.

Kết quả
Ghi ra Q dòng, dòng thứ i là kết quả của truy vấn thứ i trong dữ liệu vào:

• Nếu là truy vấn loại 1, ghi ra duy nhất 1 số P là số thứ tự tìm được. Dữ liệu đảm bảo 1 ≤ P ≤ 1015 ;
• Nếu là truy vấn loại 2, đầu tiên ghi ra một số N và tiếp theo là N phần tử của bộ tìm được.

Ví dụ
test answer
2 9
1 3 1 1 2 2 3 1
2 14

Giải thích
Dữ liệu vào ví dụ chứa cả hai loại truy vấn. Truy vấn đầu tiên là truy vấn loại 1 yêu cầu tìm số thứ tự cho bộ
(1,1,2) có 3 phần tử. Kết quả cho ra số thứ tự 9. Truy vấn thứ hai là truy vấn loại 2, yêu cầu tìm bộ có thứ tự 14.
Kết quả cho ra bộ (3,1) có 2 phần tử.

Trang 4 trên 8
Cuộc thi Olympic Tin Học Sinh Viên cấp trường ĐHBKHN 2017
KHỐI SIÊU CÚP, 23/9/2017

Bài D. SC04. Khảo cổ

Kỳ nghỉ hè năm nay, Bờm theo làm việc với một nhóm các nhà khảo cổ trên không. Nhóm này được
quốc tế biết về những thành công của họ trong việc sử dụng hình ảnh quang phổ hạt nhân để điều tra
các di tích dưới lòng đất của các nền văn hóa tiền sử. Hôm nay, công việc của Bờm là tìm ra một con
đường cho một trực thăng mang theo một máy đo quang phổ bay trên một khu vực khảo cổ học ở một
vùng đồng bằng. Quang phổ kế là một thiết bị rất nhạy và dễ bị hư hỏng và máy bay trực thăng mang
theo nó phải bay với vận tốc không đổi dọc theo một đường thẳng để cực tiểu nhiễu đo lường.
Ẩn dưới bề mặt của vùng đồng bằng này có nhiều khu định cư thời tiền sử mà vị trí và ranh giới đã được
xác lập từ trước bằng các kỹ thuật khác. Bờm được cung cấp một bản đồ đặc biệt về tất cả các đường
ranh giới này, trong đó mỗi khu định cư được biểu diễn bởi một đa giác đơn (đường gấp khúc khép kín
không tự cắt). Mục tiêu của chuyến bay là bay qua càng nhiều khu định cư càng tốt và đo thành phần
đất trong và xung quanh chúng. Như vậy, công việc của Bờm phải làm là vẽ một đường thẳng đi qua
được một số nhiều nhất các khu định cư trên bản đồ.
Hình dạng của các khu định cư là khá phức tạp và có các khu định cư chồng lấn lên nhau, thường rất
hỗn độn. Do đó, việc vẽ một đường thẳng như vậy không phải là một việc dễ dàng.
Yêu cầu: Dựa trên dữ liệu bản đồ cho trước, hãy giúp Bờm xác định đường thẳng thỏa mãn các yêu
cầu đặt ra.

Dữ liệu vào
Dòng đầu tiên chứa một số nguyên dương T (T ≤ 50) là số lượng test. Tiếp đến là T nhóm dòng, mỗi
nhóm (tương ứng với một test) chứa thông tin về bản đồ mô tả hình dạng và vị trí của các khu định cư
theo khuôn dạng sau đây:

• Dòng đầu tiên chứa số nguyên dương N là số lượng đa giác (khu định cư) trên bản đồ;

• Tiếp đến là N nhóm dòng, mỗi nhóm mô tả một đa giác theo khuôn dạng sau:

– Dòng đầu tiên chứa số nguyên M (M ≥ 3) là số lượng đỉnh của đa giác;


– Mỗi dòng trong số M dòng tiếp theo chứa hai số nguyên x, y được ghi cách nhau bởi dấu cách
là tọa độ của một đỉnh của đa giác. Các đỉnh được liệt kê theo thứ tự đi vòng quanh biên của
đa giác theo chiều kim đồng hồ.

Kết quả
Ghi ra T dòng, mỗi dòng tương ứng với một test theo thứ tự tương ứng trong dữ liệu vào bao gồm một
số nguyên P là số lượng đa giác trên bản đồ bị cắt bởi đường thẳng tìm được.
Chú ý là ta nói đường thẳng là cắt đa giác nếu nó đi qua ít nhất một điểm trong của đa giác.

Trang 5 trên 8
Cuộc thi Olympic Tin Học Sinh Viên cấp trường ĐHBKHN 2017
KHỐI SIÊU CÚP, 23/9/2017
Ví dụ
test answer
1 2
3
4
0 0
0 1
1 1
1 0
4
1 2
1 3
2 3
2 2
5
2 1
2 2
9 2
10 3
10 1

Giải thích
Hình vẽ minh họa cho ví dụ

Hạn chế

• Các tọa độ của các đỉnh đa giác là các số nguyên có trị tuyệt đối không quá 10000.

• Tổng số lượng đỉnh của tất cả các đa giác là không quá 1000.

Trang 6 trên 8
Cuộc thi Olympic Tin Học Sinh Viên cấp trường ĐHBKHN 2017
KHỐI SIÊU CÚP, 23/9/2017

Bài E. SC05. Ghế sofa

SofaCop là công ty chuyên về thiết kế và cung cấp các loại ghế sofa hảo hạng. Quá trình sản xuất ra một
chiếc ghế sofa của họ được chia thành hai giai đoạn: đóng khung và sơn bóng. Khi công ty nhận được
đơn đặt hàng yêu cầu cung cấp một số sofa, ban điều hành sẽ dựa trên hiểu biết về thời gian cần thiết để
mỗi công nhân hoàn thành việc đóng khung mỗi sofa để quyết định giao công nhân nào sẽ đóng khung
cho sofa nào để tổng thời gian thực hiện giai đoạn đóng khung là ít nhất. Ban điều hành được đảm bảo
rằng có đủ công nhân để hoàn thành đơn hàng, đồng thời chỉ được phân công mỗi công nhân thực hiện
đóng khung cho một chiếc sofa trong đơn hàng (nếu không công ty có thể phải giải quyết các đơn khiếu
nại từ công nhân đòi bồi thường cho chấn thương khi phải làm lặp đi lặp lại liên tục một thao tác).
Khi các công nhân đã bắt đầu công việc đóng khung, ban điều hành thực hiện phân tích giai đoạn sơn
để biết thời gian cần thiết để hoàn thành việc sơn mỗi ghế sofa của mỗi công nhân. Ban điều hành cũng
chỉ được giao cho mỗi công nhân thực hiện việc sơn bóng cho một chiếc ghế sofa (có thể khác với chiếc
sofa mà anh ta được giao thực hiện việc đóng khung) khi anh ta hoàn thành việc đóng khung. Một công
nhân chỉ có thể thực hiện việc sơn chiếc sofa phân cho anh ta khi việc đóng khung chiếc ghế này đã được
hoàn thành (có thể bởi một công nhân khác). Vì vậy, có thể có một số công nhân phải chờ đợi để thực
hiện công đoạn sơn. Khi đó, họ thường vào thư giãn ở phòng giải trí của công ty.
Vì các công nhân được trả tiền công theo giờ, nên cho dù họ đang làm việc hay đang ngồi thư giãn chờ
tiếp tục làm việc, họ vẫn được trả lương. Do đó, dựa trên phân công thực hiện công việc trong giai đoạn
đóng khung, ban điều hành công ty tiếp tục muốn tìm cách phân công việc thực hiện sơn sofa cho các
công nhân để cực tiểu hóa tổng số giờ có mặt của các công nhân tại công ty, với giả thiết là việc phân
công thực hiện giai đoạn đóng khung được xác định như đã nêu ở trên và mỗi công nhân sẽ rời công ty
ngay sau khi họ hoàn thành công đoạn sơn sofa.
Yêu cầu: Hãy viết chương trình giúp Ban điều hành công ty tìm cách phân công thỏa mãn các yêu cầu
đã nêu.

Dữ liệu vào
Dòng đầu tiên chứa số nguyên T (T ≤ 20) là số lượng test. Tiếp đến là T nhóm dòng, mỗi nhóm là dữ
liệu của một test theo khuôn dạng sau:

• Dòng đầu tiên chứa số nguyên dương n ≤ 50 là số ghế sofa và cũng là số lượng công nhân;

• Tiếp đến là n dòng, mỗi dòng chứa n số nguyên dương; số thứ i trên dòng thứ j là thời gian cần
thiết để công nhân j hoàn thành việc đóng khung cho sofa i (các công nhân và các ghế sofa được
đánh số bắt đầu từ 1);

• Cuối cùng là n dòng, mỗi dòng chứa n số nguyên dương, số thứ i trên dòng thứ j là thời gian cần
thiết để công nhân j sơn sofa i.

Thời gian thực hiện mỗi công đoạn đóng khung cũng như sơn của mỗi công nhân đều không lớn hơn
1000.

Kết quả
Ghi ra T dòng là kết quả tương ứng với T test trong dữ liệu vào, mỗi dòng chứa một số nguyên là tổng
thời gian thư giãn (chờ đợi để thực hiện công đoạn sơn) của các công nhân trong phòng giải trí của công
ty trong quá trình thực hiện đơn đặt hàng.

Trang 7 trên 8
Cuộc thi Olympic Tin Học Sinh Viên cấp trường ĐHBKHN 2017
KHỐI SIÊU CÚP, 23/9/2017
Ví dụ
test answer
1 2
4
8 6 12 19
13 2 18 10
9 15 16 17
5 18 4 10
2 6 3 3
8 5 9 2
5 8 4 3
4 4 5 2

Giải thích
Bảng sau đây chỉ ra cách phân công các công nhân thực hiện công việc với tổng thời gian thư giãn (chờ
đợi để thực hiện công đoạn sơn) của các công nhân trong phòng giải trí của công ty trong quá trình thực
hiện đơn đặt hàng là bằng 2:

Công nhân Chỉ số Sofa phải đóng Chỉ số sofa phải sơn
1 2 3
2 4 4
3 1 1
4 3 2

Trang 8 trên 8

You might also like