Tải bản đầy đủ (.pdf) (970 trang)

Tổng hợp 600 bài tập trên VN.SPOJ.COM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (26.19 MB, 970 trang )

Tổng hợp 600 bài tập trên
VN.SPOJ.COM
[Type the document subtitle]
Tài liệu bao gồm tất cả các bài tập trên trang SPOJ hiện có
cho tới ngày 11/06/2014.
Phạm Quốc Du Thiên
11/06/2014



7846. Tổng chữ số
Mã bài: A2DIGIT
Xét số nguyên dương x. Gọi S(x) là hàm tính tổng các chữ số của x (trong dạng biểu diễn cơ số
10). Ví dụ, S(21) = 2+1 = 3.
Cho số nguyên dương n. Ta có thể biểu diễn n dưới dạng tổng của k số nguyên a1, a2, . . ., ak.
Yêu cầu: Cho hai số nguyên dương n và m (n, m ≤ 1012). Hãy xác định k nhỏ nhất, sao cho với
nó tồn tại các số a1, a2, . . ., ak thỏa mãn:



a1+a2+ ...+ak= N
S(a1)+ S(a2)+...+S(ak)= M

Dữ liệu: 2 dòng chứa hai số nguyên n và m.
Kết quả: kết quả đưa ra trên một dịng dưới dạng số ngun. Nếu khơng tồn tại cách phân tích thì
đưa ra số -1.
VD:
Input
100
1
Output


1
Được gửi lên bởi:
Ngày:
Thời gian chạy:
Giới hạn mã
nguồn:
Memory limit:
Cluster:
Ngôn ngữ cho
phép:
Nguồn bài:

bnta2
2010-11-14
10s
50000B
256MB
Pyramid (Intel Pentium III 733 MHz)
AWK C C# C++ 4.3.2 C++ 4.0.0-8 JAVA NODEJS PAS fpc PAS gpc PYTH
3.2.3 n SED
Add by Jamespotter


3810. Kiểm sốt khơng lưu
Mã bài: AIRCTRL
Với sự phát triển ngày càng nhanh của hàng không Việt Nam, sân bay Nội Bài đã trở nên quá
nhỏ bé. Sân bay chỉ có một đường bãng và các máy bay khi bay tới Hà Nội sẽ phải bay lịng
vịng phía trên để chờ được hạ cánh.
Để đơn giản, ta hãy mô tả sân bay trên mặt phẳng tọa độ Đề Các, mỗi đơn vị độ dài sẽ tương
đương 1 Km. Đường bãng của sân bay là một đoạn thẳng từ (0, 0) đến (-7, 0). Các máy bay khi

đến Hà Nội sẽ phải bay ở khu vực chờ, đó là một hình có dạng hình chữ nhật với bốn góc là các
đoạn ¼ đường trịn. Góc trái dưới của hình chữ nhật có tọa độ (X1, 0), góc phải trên là (X2, Y2).
Các góc phần tư hình trịn có bán kính là R. Dưới đây là ví dụ với X1 = 2, X2 = 11, Y2 = 7, R = 1.

Các máy bay sẽ bay với cùng vận tốc 10 Km/phút và theo hướng cùng chiều kim đồng hồ. Khi
được phép hạ cánh, máy bay phải bay tới vị trí (X1 + R, 0) (vị trí được đánh dấu hình trịn màu
đỏ trên hình vẽ) rồi từ đó bay thẳng vào đường bãng. Tại thời điểm ban đầu, có N máy bay, tại
các tọa độ (XU, YU). Với mỗi máy bay, ta được biết lượng nhiên liệu còn lại đủ để đi quãng


đường là PU (Km). Máy bay được coi là hạ cánh an tồn nếu nó đủ nhiêu liệu để bay đến điểm có
tọa độ (0, 0) (đầu đường bãng).
Bạn hãy sắp xếp thứ tự được hạ cánh của các máy bay sao cho thời gian hạ cánh gần nhất giữa 2
máy bay liên tiếp là lớn nhất có thể được, điều này sẽ tãng độ an toàn của các lần hạ cánh.

Dữ liệu





Dòng thứ nhất ghi 4 số nguyên X1, X2, Y2, R.
Dòng thứ hai ghi số N.
Tiếp theo là N dòng, mỗi dòng ghi 3 số thực XU, YU, PU.
Dữ liệu đảm bảo máy bay đang bay trên các cạnh thẳng của khu vực chờ. Lưu ý rằng
các máy bay có thể ở cùng vị trí vì khi độ cao chênh lệch khác nhau thì vẫn đảm bảo độ
an toàn.

Kết quả



Ghi ra duy nhất thời gian hạ cánh gần nhất giữa 2 máy bay liên tiếp (tính theo phút) với
độ chính xác là 1e-6.

Ví dụ
Dữ liệu2 11 7 126 0 4011 3 25 Kết quả2.271238898

Giải thích
Máy bay #2 chỉ còn bay được 25 Km và phải được ưu tiên hạ cánh ngay. Máy bay #2 sẽ hạ cánh
sau khi bay thêm khoảng 13.57079633 Km nữa. Máy bay #1 cũng có thể hạ cánh ngay nhưng sẽ
an tồn hơn nếu máy bay #1 bay thêm 1 vòng nữa. Tổng cộng máy bay #1 sẽ bay thêm
36.28318531 Km.

Giới hạn








2 ≤ N ≤ 10, trong các test chiếm 60% số điểm, 2 ≤ N ≤ 8
0 ≤ X1 ≤ 100
X1 < X2 ≤ 100
0 < Y2 ≤ 100
0 < 2R < Y, 0 < 2R < X2 – X1
0 < PU ≤ 100
Ln có một cách sắp xếp các máy bay hạ cánh.


Được gửi lên bởi: Duc
Ngày:
2009-02-04
Thời gian chạy:
1s
Giới hạn mã nguồn: 50000B


Memory limit:
256MB
Cluster:
Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ERL JS NODEJS PERL 6
VNOI Online Informatics Olympiad '09
Nguồn bài:
Day 1

5165. Allowance
Mã bài: ALLOW
Như một phần thưởng cho sản xuất sữa kỷ lục, nông dân John đã quyết định bắt đầu trả
tiền trợ cấp nhỏ cho Bessie hàng tuần.
FJ có một bộ tiền xu tại N (1 ≤ N ≤ 20) mệnh giá khác nhau, trong đó mỗi mệnh giá đồng
xu đều được chia hết bởi mệnh giá lớn tiếp theo.
Sử dụng bộ tiền xu đã cho, FJ muốn trả Bessie một số lượng tiền trợ cấp ít nhất C xu
(1 ≤ C ≤ 100000000) mỗi tuần. Hãy giúp ơng ta tính số lượng tuần tối đa mà ơng có thể
trả tiền trợ cấp cho Bessie.

Input
- Dịng 1: Hai số nguyên: N và C
- Các dòng 2..N+1: Mỗi dòng tương ứng với một loại đồng xu và chứa hai số nguyên:

giá trị V (1 ≤ V ≤ 100000000) của các mệnh giá, và số tiền xu B (1 ≤ B ≤ 1000000) của
mệnh giá này mà Farmer John sở hữu.

Output
- Một số nguyên là số tuần mà FJ cần trả cho Bessie ít nhất C xu tiền trợ cấp.


Example
Input
3 6
10 1
1 100
5 120
Output:
111
Giải thích output:
FJ có thể trả Bessie với một đồng 10-xu cho 1 tuần.
Sau đó trả tiếp 2 đồng 5 xu cho 10 tuần.
Sau đó trả Bessie 1 đồng 1 xu và 1 đồng 5 xu cho 100 tuần.

Translation by Khuong Nguyen Duy

Bài này USACO để time limit 1s, mình hạ xuống 0.5s,
để AC các bạn cần có những Solution "tinh tế"! :D

Được gửi lên bởi: HNUE
Ngày:
2009-11-02
Thời gian chạy:
0.5s

Giới hạn mã nguồn: 1500B
Memory limit:
256MB
Cluster:
Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho phép:Tất cả ngoại trừ: NODEJS PERL 6
Nguồn bài:
USACO OCT09

12192. Dãy số
Mã bài: AMSSEQ


Cho 1 dãy số gồm N phần tử (N ≤ 10000), mỗi phần tử có 1 giá trị nằm trong khoảng [-1000,
1000]. Ban đầu, bạn sẽ ở vị trí ơ số 0 với tổng điểm là 0. Mỗi nước đi, người chơi có thể di
chuyển sang phải tối thiểu là 1 bước và tối đa là K bước (K ≤ 10) . Khi dừng lại ở 1 ơ nào đó thì
giá trị của ơ đó sẽ được cộng vào tổng điểm. Bạn có thể dừng cuộc chơi bất cứ lúc nào. Hãy tìm
cách chơi sao cho tổng điểm nhận được là nhiều nhất.

Dữ liệu vào


Dòng đầu tiên chứa 2 số N, K.



Dòng thứ 2 chứa N số của dãy, mỗi số cách nhau 1 dấu cách. Mỗi số nằm trong khoảng [1000, 1000]

Dữ liệu ra



Số điểm lớn nhất có thể đạt được.

Giới hạn:




N ≤ 10000.
K ≤ 10.
Trong 20% số test có N ≤ 10

Ví dụ
Input:
5 2
-2 3 -6 -4 5
Output:4
Giải thích:
- Ta có thể đi theo thứ tự 0 -> 2 -> 4 -> 5. Số điểm đạt được là 0 + 3 - 4 +
5 = 4.

Được gửi lên bởi: T-7
Ngày:
2012-09-06
Thời gian chạy:
1s
Giới hạn mã nguồn: 50000B
Memory limit:
1536MB
Cluster:

Cube (Intel Pentium G860 3GHz)
Ngôn ngữ cho phép:Tất cả


2870. Kiến
Mã bài: ANT
English

Vietnamese

Họ nhà kiến tổ chức một trò chơi như sau để mừng nãm mới. Những chú kiến quây thành một
vòng tròn. Kiến chúa sẽ đưa ra một con số và gọi nó là số M (Mồi). Bắt đầu, kiến chúa đếm số 1,
theo chiều kim đồng hồ, các chú kiến lần lượt đếm số tiếp theo. Đến lượt chú kiến đếm phải số
đúng bằng số M thì sẽ phải đi ra khỏi vòng tròn. Việc đếm lại từ 1 bắt đầu từ chú kiến tiếp theo,
theo chiều kim đồng hồ.
Trò chơi kết thúc, khi chỉ còn lại một chú kiến. Chú kiến đó sẽ nhận được món qùa đầu nãm của
họ nhà kiến.

Biết số chú kiến ban đầu trên vòng tròn và số M. Hãy xác định số thứ tự của chú kiến sẽ nhận
được phần thưởng may mắn. Các chú kiến được đánh số thứ tự theo chiều kim đồng hồ, bắt đầu
từ kiến chúa có số hiệu 1.

Dữ liệu



Dòng 1: chứa số nguyên dương N, là số chú kiến trên vòng tròn.
Dòng 2: chứa số nguyên dương M.

Kết qủa

Gồm 1 dòng duy nhất, chứa số thứ tự của chú kiến sẽ nhận được món qùa đầu nãm

Giới hạn



1 ≤ N ≤ 1012.3 ≤ M ≤ 106.
M ≤ N.

Ví dụ
Dữ liệu7 3Kết quả4Giải thíchThứ tự những chú kiến phải ra khỏi vòng tròn lần
lượt là: 3 6 2 7 5 1.Chú kiến 4 là chú kiến may mắn!


Được gửi lên
VOJ Team
bởi:
Ngày:
2008-07-21
Thời gian chạy: 5s
Giới hạn mã
50000B
nguồn:
Memory limit: 256MB
Cluster:
Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho Tất cả ngoại trừ: AWK C++ 4.3.2 CLOJ ERL F# GO JS NODEJS PERL 6
phép:
PYTH 3.2.3 PYTH 3.2.3 n SCALA SED TCL
VNOI Marathon '08 - Round 11/DivB

Nguồn bài:
Problem Setter: Ngô Minh Đức

4654. Tam giác
Mã bài: AREATRI
Cho n điểm đôi một phân biệt trên mặt phẳng (n ≥ 3). Có n(n-1)(n-2)/6 tam giác có các đỉnh là 3
đỉnh phân biệt trong số n điểm này (bao gồm cả những tam giác bị suy biến, nghĩa là khi cả 3
đỉnh thẳng hàng).
Ta cần tính tổng diện tích của các tam giác này. Phần mặt phẳng thuộc về nhiều tam giác sẽ được
tính nhiều lần. Quy ước diện tích của các tam giác suy biến là 0.

Dữ liệu
Dòng đầu tiên chứa một số nguyên n (3 ≤ n ≤ 1000) cho biết số lượng điểm. Mỗi dòng trong số n
dòng sau chứa 2 số nguyên xi và yi (0 ≤ xi, yi ≤ 10000) phân cách bởi một khoảng trắng xác định
tọa độ của điểm thứ i (với i=1,2,...,n). Khơng có cặp (thứ tự) tọa độ nào xuất hiện nhiều hơn một
lần.


Kết quả
In ra một số thực duy nhất bằng tổng diện tích của các tam giác có các đỉnh nằm trong n điểm đã
cho. Kết quả phải được in ra với đúng một chữ số thập phân và không được chênh lệch với kết
quả đúng nhiều hơn 0.1.

Ví dụ
Dữ liệu50 01 20 21 01 1Kết quả7.0

Được gửi lên bởi: Duc
Ngày:
2009-07-27
Thời gian chạy:

3s
Giới hạn mã nguồn: 50000B
Memory limit:
256MB
Cluster:
Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ERL JS PERL 6
Nguồn bài:
XV Polish Olympiad in Informatics

12656. Assassin Creed
Mã bài: ASSASSIN
Ezio needs to kill N targets located in N different cities. The cities are connected by some one
way roads. As time is short, Ezio can send a massage along with the map to the assassin's bureau
to send some assassins who will start visiting cities and killing the targets. An assassin can start
from any city, he may visit any city multiple times even the cities that are already visited by
other assassins. Now Ezio wants to find the minimum number of assassins needed to kill all the
targets.

Input
Input starts with an integer T (≤ 70), denoting the number of test cases.
Each case starts with a blank line. Next line contains two integers N (1 ≤ N ≤ 1000) and M (0 ≤
M ≤ 10000), where N denotes the number of cities and M denotes the number of one way roads.


Each of the next M lines contains two integers u v (1 ≤ u, v ≤ N, u ≠ v) meaning that there is a
road from u to v. Assume that there can be at most one road from a city u to v.

Output
For each case, print the case number and the minimum number of assassins needed to kill all

targets.

Sample Input

Output for Sample
Input

3

Case 1: 2
Case 2: 7

54
12
13
41
51

70

88
12
23
34
41
16

Case 3: 2



67
78
86

Note
Dataset is huge, use faster I/O methods.
Được gửi lên bởi: Race with time
Ngày:
2012-11-06
Thời gian chạy:
1s-2s
Giới hạn mã nguồn: 50000B
Memory limit:
1536MB
Cluster:
Cube (Intel Pentium G860 3GHz)
Ngôn ngữ cho phép:Tất cả

3337. Going Once, Going Twice, Gone!
Mã bài: AUCTION
Chế độ ãn kiêng của đàn bị khiến cho nơng trang của nơng dân John dơi ra 1 số lượng cỏ khơ, vì
vậy anh ta muốn bán đấu giá số cỏ khô này để trang trải phần nào chi phí chãn ni. Anh ta có N
(1 <= N <= 1,000) bó cỏ khơ giống nhau; khách hàng sẽ đấu giá để mua đống cỏ này là M (1 <=
M <= 1,000) nông dân khác sống gần đó.
Mỗi một nơng dân i sẽ cho nơng dân John biết anh ta sẵn sàng trả P_i (1 <= P_i <= 1,000,000)
đồng cho 1 bó cỏ khơ. Mỗi một nơng dân chỉ muốn mua 1 bó cỏ khơ mà thơi.
Để đảm bảo các nông dân không ghen tị với nhau, nông dân John sẽ đưa ra 1 mức giá cố định
cho tất cả người đến mua và bán các bó cỏ khô cho những ai trả giá >= mức giá đó, những người
cịn lại sẽ bị từ chối giao dịch.
Hãy giúp nơng dân John tính xem đặt mức giá nhỏ nhất là bao nhiêu để thu được nhiều tiền nhất

có thể.


Dữ liệu
* Dòng 1: Hai số nguyên cách nhau bởi dấu cách: N và M
* Dòng 2..M+1: Dòng i+1 chứa 1 số nguyên duy nhất: P_i

Kết quả
* Dòng 1: 2 số nguyên cách nhau bởi dấu cách: giá bán của John và số tiền mà John thu được

Ví dụ
Dữ liệu:5 428107Kết quả:7 21

Được gửi lên
bởi:
Ngày:
Thời gian
chạy:
Giới hạn mã
nguồn:
Memory limit:
Cluster:
Ngôn ngữ cho
phép:
Nguồn bài:

Phong
2008-11-11
1s
50000B

256MB
Pyramid (Intel Pentium III 733 MHz)
Tất cả ngoại trừ: AWK C++ 4.3.2 CLOJ ERL F# GO JS NODEJS PERL 6
PYTH 3.2.3 PYTH 3.2.3 n SCALA SCM guile SED TCL
USACO November 2008

15379. Dãy cấp số cộng
Mã bài: AVLBIT


Một dãy cấp số cộng là một dãy số mà 2 cặp phần tử liên tiếp bất kỳ có hiệu bằng nhau và
khác 0. Trường hợp dãy số chỉ gồm 2 số khác nhau vẫn tính là một dãy cấp số cộng
Ví dụ: 2, 5 là dãy cấp số cộng.
8, 3 là dãy cấp số cộng.
1, 2, 3, 4, 5 là dãy cấp số cộng.
11, 8, 5, 2 là dãy cấp số cộng.
1, 2, 4, 5, 7 không phải là dãy cấp số cộng.
Cho một dãy số A gồm N số nguyên dương. Cho Q truy vấn dạng (x, y). Mỗi truy vấn yêu
cầu kiểm tra xem đoạn từ x tới y có phải là hốn vị của một dãy cấp số cộng khơng.

Dữ liệu vào
Dịng đầu chứa 2 số nguyên N, Q.
Số thứ i trong N số ở dòng thứ 2 là Ai.
Dòng thứ i trong Q dòng tiếp theo chứa 2 số nguyên x, y mô tả truy vấn thứ i.

Dữ liệu ra
Gồm Q dòng.
Dòng thứ i trong Q dòng sẽ trả lời cho truy vấn thứ i.
In ra YES nếu đoạn từ x tới y là hoán vị của một dãy cấp số cộng. Ngược lại thì ghi ra NO.


Ràng buộc
11 test có N, Q <= 1000 .
10 test có N <= 1000, Q <= 10^6 .
10 test có N <= 10^5, Q <= 10^5.
Ai <= 10^9


Ví dụ

Dữ liệu vào
52

Dữ liệu ra
YES

13254

NO

15
24

Được gửi lên bởi: CoderPTNK1114
Ngày:
2013-07-12
Thời gian chạy:
1s-3s
Giới hạn mã nguồn: 50000B
Memory limit:
256MB

Cluster:
Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho phép:Tất cả
Nguồn bài:
Sưu tầm

17846. VOI 2014 - Mang truyen thong
Mã bài: AZNET
Ngân hàng AZ có n chi nhánh, mỗi chi nhánh có một máy chủ là đầu mối đảm bảo truyền thơng
với các chi nhánh cịn lại. Các máy chủ ở các chi nhánh được đánh số từ 1 đến n. Để đảm bảo
truyền thông giữa các chi nhánh, ngân hàng thuê m kênh truyền tin của hai công ty A và B để kết
nối n máy chủ của các chi nhánh thành một mạng máy tính. Các kênh truyền tin được đánh số từ
1 đến m, khơng có hai kênh truyền tin nào kết nối cùng một cặp máy chủ. Kênh truyền tin i (thuê
của công ty A hoặc B) đảm bảo việc truyền tin hai chiều giữa máy chủ của chi nhánh ui và vi (i =
1, 2, ..., m). Mạng máy tính có tính chất thơng suốt nghĩa là đảm bảo từ máy chủ của một chi
nhánh bất kỳ có thể truyền tin đến tất cả các máy chủ của các chi nhánh còn lại theo kênh truyền
tin trực tiếp giữa chúng hoặc thông qua đường truyền đi qua một số máy chủ của các chi nhánh
nào đó. Trong thời gian tới do tình hình tài chính gặp khó khãn, ngân hàng muốn cắt giảm tối đa


việc thuê các kênh truyền tin nhưng vẫn đảm bảo mạng thơng suốt. Do chi phí th bao phụ
thuộc vào số lượng kênh truyền tin phải thuê, nêu sau khi hỏi ý kiến các chuyên gia, ngân hàng
được biết là để đảm bảo tính thơng suốt của mạng, tối thiểu phải thuê n - 1 kênh truyền tin. Từ
bảng đơn giá thuê bao kênh truyền tin với hai công ty ta biết ak và bk tương ứng là giá thuê bao
k kênh truyền tin của công ty A và B (k = 1, 2, ..., n - 1). Ngân hàng muốn tìm phương án giữ lại
đúng n - 1 kênh truyền tin trong số m kênh truyền tin đã thuê của hai cơng ty sao cho tổng chi
phí th bao phải trả là nhỏ nhất mà vẫn đảm bảo tính thông suốt của mạng.

Yêu cầu
Cho biết danh sách các kênh truyền tin và các chi phí ak, bk (k = 1, 2, ..., n - 1). Hãy tìm phương

án giữ lại đúng n - 1 kênh truyền tin trong số m kênh truyền tin đã thuê của hai công ty sao cho
tổng chi phí thuê bao phải trả là nhỏ nhất mà vẫn đảm bảo tính thơng suốt của mạng.

Input
Dịng đầu tiên chứa T là số lượng bộ dữ liệu. Tiếp đến là T nhóm dịng, mỗi nhóm dịng cho biết
thông tin về một bộ dữ liệu theo khuôn dạng sau:





Dòng thứ nhất chứa hai số nguyên dương n, m;
Dòng thứ hai chứa n - 1 số nguyên dương a1, a2, ..., a(n - 1) mỗi số nhỏ hơn 10^9.
Dòng thứ bai chứa n - 1 sô nguyên dương b1, b2, ..., b(n - 1) mỗi số nhỏ hơn 10^9.
Dòng thứ i trong số m dòng tiếp theo chứa ba số nguyên dương ui, vi, ci cho biết thông
tin về kênh truyền tin thứ i (i = 1, 2, ..., m). Giả thiết ui khác vi, ci = 1 nếu kênh truyền tin
thuê của công ty A, ci = 2 nếu kênh truyền tin th của cơng ty B.

Giải thích




30% số test có n < 10.
30% số test khác có n < 100.
40% số test cịn lại có n <= 10^4, m <= 10^5.

Output
Ghi ra T dòng mỗi dòng ghi kết quả của bộ test tương ứng.


Example
Input:13 31 21 51 2 11 3 22 3 2Output:1 3

Được gửi lên bởi: VOJ Team
Ngày:
2014-01-03
Thời gian chạy:
1s
Giới hạn mã nguồn: 50000B
Memory limit:
1536MB
Cluster:
Cube (Intel Pentium G860 3GHz)


Ngôn ngữ cho phép:Tất cả
Nguồn bài:
VOI 2014 - Ngày 1

17870. VOI 2014 - Trò Chơi Với Những Viên
Bi
Mã bài: BALLGMVN
Trong một hội thi Ballgame, ban tổ chức chuẩn bị một bàn lớn. Trên mặt bàn có n bi xanh đánh
số từ 1 đến n và n bi đỏ đánh số từ n + 1 đến 2n. Mỗi trận đấu, các vận động viên sẽ chơi luân
phiên nhau. Đến lượt chơi của mình, Hùng cần tìm 3 bi mà vị trí của chúng là thằng hàng hanu
và sao cho trong số đó có hai bi đỏ và 1 bi xanh (khi đó ãn được một bi đỏ), hoặc là có hai bi
xanh và 1 bi đỏ (khi đó được ãn 1 bi xanh).

Yêu cầu
Cho biết tọa độ trên mặt phẳng tọa độ Đề-các của vị trí và màu của các bi hiện tại trên bàn, bạn

hãy giúp Hùng chọn 3 bi để chơi.

Input





Dòng đầu ghi số nguên dương n.
Dòng thứ i trong số n dòng tiếp theo ghi hai số nguyên là hoành độ và tung độ trên mặt
phẳng tọa độ Đề-các của vị trí đặt bi xanh với chỉ sơ i.
Dòng thứ i trong số n dòng cuối cùng ghi hai số nguyên là hoàng độ và tung độ trên mặt
phẳng tọa độ Đề-các của vị trí đặt bi đỏ với chỉ số n + i.
Hoàng độ và tung độ khơng vượt q 10^6, vị trí các bi là đơi một phân biệt.

Giới hạn




30% số test có n <= 2;
30% số test khác có n <= 100.
40% số test cịn lại có n <= 1000.


Output
Ghi ra 3 chỉ số của các viên bi mà Hùng cần chọn, nếu không thể chọn được 3 bi nào, ghi ra -1.
Nếu có nhiều đáp án, ghi ra một đáp án bất kì.

Example

Input:31 12 24 93 36 208 100Output:1 2 4

Được gửi lên bởi: VOJ Team
Ngày:
2014-01-04
Thời gian chạy:
1s
Giới hạn mã nguồn: 50000B
Memory limit:
1536MB
Cluster:
Cube (Intel Pentium G860 3GHz)
Ngôn ngữ cho phép:Tất cả
Nguồn bài:
Đề thi học sinh giỏi quốc gia 2013-2014

3720. Bị Ba-ri
Mã bài: BARIC
Học theo những gì đọc được từ một bài báo viết về việc tãng sản lượng sữa, Bessie đã biến mình
trở thành một con bị Ba-ri bằng cách tìm hiểu về áp suất khơng khí để lấy lịng Farmer John.
Cơ ta đã làm N phép đo (1 <= N <= 100) trong ngày. Để thuận tiện, chúng lần lượt được gọi là
M_1, M_2, ..., M_N (M_i <= 1 000 000). Các phép đo được đánh số theo thứ tự Bessie thực hiện
chúng.
Để thể hiện được những phân tích về áp suất khí quyển trong ngày, Bessie đang để tâm đến việc
tìm một tập hợp con của các phép đo, biểu thị bởi K (1 <= K <= N) chỉ số s_j (trong đó 1 <= s_1
<= s_2 <= ... <= s_K <= N), thể hiện chính xác được toàn bộ các phép đo, tức là, giới hạn sai số
trong khoảng cho phép.
Trong bất kì tập hợp các phép đo nào, một lỗi xuất hiện ở mỗi phép đo có vị trí:
1. trước phép đo đầu tiên trong tập hợp;
2. giữa hai phép đo liên tiếp trong tập hợp;

3. sau phép đo cuối cùng trong tập hợp.


Tổng sai số của tập hợp đó được tính bằng tổng các lỗi trong các phép đo.
Cụ thể, với mỗi phép đó có chỉ số i mà khơng nằm trong tập hợp các phép đo đang xét:



Nếu i < s_1 , sai số được tính như sau:2 * | M_i - M_(s_1) |
Nếu s_j < i < s_(j+1), sai số được tính như sau:| 2 * M_i - Sum(s_j, s_(j+1)) |
trong đó Sum(x,y) = M_x + M_y



Nếu s_K > i, sai số được tính như sau:2 * | M_i - M_(s_K) |

Cho biết sai số tối đa là E (E <= 1 000 000), xác định số phần tử của tập hợp nhỏ nhất tạo ra sai
số không vượt quá E.

Dữ liệu
Dòng 1: Chứa hai số nguyên cách nhau bởi khoảng trắng: N và E
Dòng 2..N+1: Dòng i+1 chứa số nguyên M_i
Dữ liệu mẫu4 201032040Giải thích
Bessie tiến hành 4 phép đo; sai số tối đa cho phép là 20. Giá trị các phép đo
lần lượt là: 10,3,20,40

Kết quả
Dòng 1: Hai số nguyên cách nhau bởi khoảng trắng: số phần tử của tập hợp các phép đo nhỏ nhất
tạo ra sai số không vượt quá E và sai số tập hợp đó tạo ra.
Kết quả mẫu2 17Giải thíchChọn phép đo thứ hai và thứ tự là giải pháp tốt

nhất, cho sai số là 17. Sai số trong phép đo thứ nhất là 2*|10-3|=14; sai số
trong phép đo thứ hai là |2*20-(3+40)|=3.

Được gửi lên bởi: Duc
Ngày:
2009-01-16
Thời gian chạy:
1s
Giới hạn mã nguồn: 50000B
Memory limit:
256MB
Cluster:
Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ERL JS NODEJS PERL 6
Usaco January 2009 - Gold Division
Nguồn bài:
Translated by khanhptnk


4255. BARICA
Mã bài: BARICAVN
Barica là một con cóc khơng bình thường. Barica sống trong một cái ao, nơi có N lá sen bềnh
bồng trên mặt nước. Những lá sen được đánh số từ 1 đến N. Nhìn từ trên xuống, mỗi lá sen đc
xem như một điểm trên hệ trục tọa độ Oxy. Barica có thể nhảy từ lá sen có tọa độ (x1;y1) đến tọa
độ (x2,y2) nếu:
_ x2 > x1 và y1 = y2 hoặc
_ y2 > y1 và x1 = x2
Với mỗi lá sen, chúng ta biết được số lượng ruồi gần đó. Barica có thể dùng lưỡi tóm gọn tất cả
những con ruồi gần lá sen mà nó đang đứng.
Barica thu được một đơn vị nãng lượng với mỗi con ruồi mà nó bắt được và mất K đơn vị nãng

lượng cho mỗi bước nhảy từ lá sen này sang lá sen khác. Barica không thể thực hiện cú nhảy nếu
nãng lượng hiện tại của nó nhỏ hơn K.
Barica muốn đi từ lá sen 1 đến lá sen N và tích trữ được nhiều nãng lượng nhất có thể khi đang ở
lá sen N. Nãng lượng của Barica ban đầu bằng 0 và dĩ nhiên nó phải lấy nãng lượng từ lá sen 1
để thực hiện cú nhảy.
Hãy tìm nãng lượng lớn nhất mà Barica có thể có được tại lá sen N.

Input
_ Dịng đầu là số N và K (N<=300 000; K<=1000) cách nhau bởi khoảng trắng
_ N dòng sau mỗi dòng chứa 3 số x_i, y_i, F_i với x_i và y_i là tọa độ lá sen thứ i và F_i là số
ruồi ở lá sen i. (0 <= x_i, y_i <= 100 000; 0 <= F_i <=1000)
Lưu ý: khơng có hai lá sen nào trùng tọa độ và ln tồn tại ít nhất một đường đi từ 1 tới N.

Output
_ Một dòng duy nhất là nãng lượng cao nhất mà Barica có thể có được khi kết thúc ở lá sen thứ
N.

Example
Input:6 51 1 52 1 51 2 42 3 53 2 303 3 5Output:5

Được gửi lên bởi: PNL
Ngày:
2009-04-24
Thời gian chạy:
1s
Giới hạn mã nguồn: 50000B
Memory limit:
256MB



Cluster:
Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ERL JS NODEJS PERL 6
Nguồn bài:
COCI 2007-2008

4255. BARICA
Mã bài: BARICAVN
Barica là một con cóc khơng bình thường. Barica sống trong một cái ao, nơi có N lá sen bềnh
bồng trên mặt nước. Những lá sen được đánh số từ 1 đến N. Nhìn từ trên xuống, mỗi lá sen đc
xem như một điểm trên hệ trục tọa độ Oxy. Barica có thể nhảy từ lá sen có tọa độ (x1;y1) đến tọa
độ (x2,y2) nếu:
_ x2 > x1 và y1 = y2 hoặc
_ y2 > y1 và x1 = x2
Với mỗi lá sen, chúng ta biết được số lượng ruồi gần đó. Barica có thể dùng lưỡi tóm gọn tất cả
những con ruồi gần lá sen mà nó đang đứng.
Barica thu được một đơn vị nãng lượng với mỗi con ruồi mà nó bắt được và mất K đơn vị nãng
lượng cho mỗi bước nhảy từ lá sen này sang lá sen khác. Barica không thể thực hiện cú nhảy nếu
nãng lượng hiện tại của nó nhỏ hơn K.
Barica muốn đi từ lá sen 1 đến lá sen N và tích trữ được nhiều nãng lượng nhất có thể khi đang ở
lá sen N. Nãng lượng của Barica ban đầu bằng 0 và dĩ nhiên nó phải lấy nãng lượng từ lá sen 1
để thực hiện cú nhảy.
Hãy tìm nãng lượng lớn nhất mà Barica có thể có được tại lá sen N.

Input
_ Dòng đầu là số N và K (N<=300 000; K<=1000) cách nhau bởi khoảng trắng
_ N dòng sau mỗi dòng chứa 3 số x_i, y_i, F_i với x_i và y_i là tọa độ lá sen thứ i và F_i là số
ruồi ở lá sen i. (0 <= x_i, y_i <= 100 000; 0 <= F_i <=1000)
Lưu ý: khơng có hai lá sen nào trùng tọa độ và ln tồn tại ít nhất một đường đi từ 1 tới N.



Output
_ Một dòng duy nhất là nãng lượng cao nhất mà Barica có thể có được khi kết thúc ở lá sen thứ
N.

Example
Input:6 51 1 52 1 51 2 42 3 53 2 303 3 5Output:5

Được gửi lên bởi: PNL
Ngày:
2009-04-24
Thời gian chạy:
1s
Giới hạn mã nguồn: 50000B
Memory limit:
256MB
Cluster:
Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ERL JS NODEJS PERL 6
Nguồn bài:
COCI 2007-2008

3720. Bò Ba-ri
Mã bài: BARIC
Học theo những gì đọc được từ một bài báo viết về việc tãng sản lượng sữa, Bessie đã biến mình
trở thành một con bị Ba-ri bằng cách tìm hiểu về áp suất khơng khí để lấy lịng Farmer John.
Cơ ta đã làm N phép đo (1 <= N <= 100) trong ngày. Để thuận tiện, chúng lần lượt được gọi là
M_1, M_2, ..., M_N (M_i <= 1 000 000). Các phép đo được đánh số theo thứ tự Bessie thực hiện
chúng.
Để thể hiện được những phân tích về áp suất khí quyển trong ngày, Bessie đang để tâm đến việc

tìm một tập hợp con của các phép đo, biểu thị bởi K (1 <= K <= N) chỉ số s_j (trong đó 1 <= s_1
<= s_2 <= ... <= s_K <= N), thể hiện chính xác được tồn bộ các phép đo, tức là, giới hạn sai số
trong khoảng cho phép.
Trong bất kì tập hợp các phép đo nào, một lỗi xuất hiện ở mỗi phép đo có vị trí:
1. trước phép đo đầu tiên trong tập hợp;
2. giữa hai phép đo liên tiếp trong tập hợp;
3. sau phép đo cuối cùng trong tập hợp.


Tổng sai số của tập hợp đó được tính bằng tổng các lỗi trong các phép đo.
Cụ thể, với mỗi phép đó có chỉ số i mà khơng nằm trong tập hợp các phép đo đang xét:



Nếu i < s_1 , sai số được tính như sau:2 * | M_i - M_(s_1) |
Nếu s_j < i < s_(j+1), sai số được tính như sau:| 2 * M_i - Sum(s_j, s_(j+1)) |
trong đó Sum(x,y) = M_x + M_y



Nếu s_K > i, sai số được tính như sau:2 * | M_i - M_(s_K) |

Cho biết sai số tối đa là E (E <= 1 000 000), xác định số phần tử của tập hợp nhỏ nhất tạo ra sai
số không vượt quá E.

Dữ liệu
Dòng 1: Chứa hai số nguyên cách nhau bởi khoảng trắng: N và E
Dòng 2..N+1: Dòng i+1 chứa số nguyên M_i
Dữ liệu mẫu4 201032040Giải thích
Bessie tiến hành 4 phép đo; sai số tối đa cho phép là 20. Giá trị các phép đo

lần lượt là: 10,3,20,40

Kết quả
Dòng 1: Hai số nguyên cách nhau bởi khoảng trắng: số phần tử của tập hợp các phép đo nhỏ nhất
tạo ra sai số không vượt quá E và sai số tập hợp đó tạo ra.
Kết quả mẫu2 17Giải thíchChọn phép đo thứ hai và thứ tự là giải pháp tốt
nhất, cho sai số là 17. Sai số trong phép đo thứ nhất là 2*|10-3|=14; sai số
trong phép đo thứ hai là |2*20-(3+40)|=3.

Được gửi lên bởi: Duc
Ngày:
2009-01-16
Thời gian chạy:
1s
Giới hạn mã nguồn: 50000B
Memory limit:
256MB
Cluster:
Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ERL JS NODEJS PERL 6
Usaco January 2009 - Gold Division
Nguồn bài:
Translated by khanhptnk


2892. Cơ số H
Mã bài: BASEH
Cho một dãy số a[1],a[2],a[3],...,a[n] và hai số K,H được xác định như sau:





a[1]=1;
Nếu K chẵn thì a[K]=H*a[K/2].
Nếu K lẻ thì a[K]=H*a[(K-1)/2]+1.

Các bạn hãy lập trình tính số thứ K của dãy viết trong hệ cơ số H.

Input


Gồm một dòng duy nhất chứa 2 số K,H.

Output


In ra số duy nhất là kết quả bài toán.

Giới hạn



0< K <=1000000000.
0=< H <=2008.

Ví dụ
Input7 110Output111

Được gửi lên bởi: Dao Bui Trung Kien
Ngày:

2008-07-26
Thời gian chạy:
1s
Giới hạn mã nguồn: 50000B
Memory limit:
256MB
Cluster:
Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ERL JS NODEJS PERL 6

2861. Chia nhóm


×