MAGIC

Small

Kế tục thành công của trò chơi với khối lập phương thần bí, ngài Rubik sáng tạo ra dạng phẳng của trò chơi này gọi là trò chơi các ô vuông thần bí. Đây là một bảng gồm 8 ô vuông bằng nhau. Trong bài này chúng ta xét bảng trong đó mỗi ô vuông có một màu khác nhau. Các mầu được ký hiệu bởi 8 số nguyên dương đầu tiên. Trạng thái của bảng được cho bởi dãy ký hiệu màu của các ô được viết lần lượt theo chiều kim đồng hồ bắt đầu từ ô ở góc trái trên và kết thúc tại ô ở góc trái dưới. Ví dụ, trạng thái của bảng trong hình 1 được cho bởi dãy \((1,2,3,4,5,6,7,8)\). Trạng thái này được gọi là trạng thái khởi đầu.

Có thể dùng 3 phép biến đổi cơ bản đối với bảng có tên là A,B,C:

  • A: Đổi chỗ dòng trên và dòng dưới.
  • B: Thực hiện một hoán vị vòng quanh sang phải.
  • C: Quay theo chiều kim đồng hồ 4 ô giữa.

Biết rằng từ trạng thái khởi đầu luôn có thể chuyển về một trạng thái bất kỳ bằng cách dùng các phép biến đổi cơ bản nói trên.

Tác động của 3 phép biến đổi được mô tả trong hình 2, với giả thiết trước khi thực hiện một phép biến đổi bất kỳ bảng đều đang ở trạng thái khởi đầu.

Hình 1:        Hình 2:

1 2 3 4 -----> 8 7 6 5
8 7 6 5   A    1 2 3 4

        -----> 4 1 2 3
          B    5 8 7 6

        -----> 1 7 2 4
          C    8 6 3 5

Bạn phải viết chương trình tính số phép biến đổi cơ bản ít nhất để chuyển bảng từ trạng thái khởi đầu trong hình 1 về một trạng thái đích cho trước.

Dữ liệu

  • Chứa 8 số nguyên dương trong dòng đầu tiên mô tả trạng thái đích.

Kết quả

  • Số phép biến đổi ít nhất.

Input

2 6 8 4 5 7 3 1

Output

7

Nguồn: 3D 20172018

Số thập nhị phân

PhanDinhKhoi

Hãy đếm có bao nhiêu số tự nhiên chỉ chứa các chữ số \(0\) và \(1\), sao cho số đó có \(n\) số \(0\) và \(m\) số \(1\).

enter image description here

Dữ liệu vào

  • \(t(t \le 1000)\) - số test
  • mỗi test chứa \(2\) số nguyên dương \(n, m (n,m \le 1000)\)

Dữ liệu ra

  • Số các số thỏa mãn % \((10^9+7)\)

Input

2
1 1
2 3

Output

1
6

Kiến trúc sư và con đường

corona

Một công ty xây dựng nọ đang lên kế hoạch cho việc sữa chữa một con đường cao tốc có chiều dài là \(n\) kilomet. Con đường này được đánh số từ \(1\) đến \(n+1\) tại những vị trí cách đều nhau đúng \(1\) kilomet, bắt đầu từ vị trí đầu của con đường. Chi phí sửa chữa cho đoạn \(1\) kilomet từ vị trí \(i\) đến \(i+1\) là \(A_i\) với \(1 ≤ i ≤ n\).

Một kiến trúc sư người Ý đảm nhiệm vai trò này và đang khảo sát mức độ hư hại cũng như chi phí để sửa chữa con đường này. Do kinh phí thời điểm hiện tại không đủ để thi công một lúc cả con đường. Anh ấy kế hoạch tính toán để chọn ra đoạn đường phù hợp nhất để sửa chữa đầu tiên. Anh ấy khảo sát con đường bằng cách chọn ra một đoạn từ vị trí \(L\) đến vị trí \(R\) trên con đường và tính xem chi phí sửa chữa trung bình trên \(1\) kilomet của đoạn này là bao nhiêu.

Yêu cầu: Cho \(Q\) câu truy vấn \((L, R)\). Hãy tính chi phí sửa chữa trung bình trên \(1\) kilomet của vị trí \(L\) đến vị trí \(R\).

Dữ liệu vào

  • Dòng đầu tiên gồm số \(n\).
  • Dòng thứ hai gồm \(n\) số nguyên \(A_i\).
  • Dòng thứ ba là số \(Q\) – số lượng câu truy vấn.
  • Q dòng tiếp theo, mỗi dòng gồm 2 số \(L\) và \(R (L<R)\).

Kết quả

  • Gồm \(Q\) dòng tương ứng là kết quả của câu truy vấn thứ \(i\), kết quả được làm tròn đến chữ số thập phân thứ \(6\).

Sample Input 1

5
1 2 3 4 5
3
1 4
2 5
4 6

Sample Output 1

2.000000
3.000000
4.500000

Giới hạn

  • \(0 ≤ A_i ≤ 10^9\)
  • 70% test có \(1 ≤ q,n ≤ 10^3\).
  • 30% test có \(1 ≤ q,n ≤ 5*10^4\).

Đôrêmon chinh phục tình yêu

Small

Đôrêmon - chàng trai có sở thích rất đặc biệt là chinh phục trái tim của các cô gái. Đôrêmon thường hay sang nhà bác ở làng bên cạnh chơi vừa để thăm bác vừa để ngắm nhìn các cô gái. Các cô gái ở làng này cũng rất thích Đôrêmon và cô nào cũng muốn được anh chàng này chinh phục. Bác của Đôrêmon là một người rất vui tính và cũng muốn thử tài của thằng cháu mình nên đã nói với Đôrêmon: “ Trong làng bác có rất nhiều cô gái xinh đẹp, tài năng. Các cô gái ấy đều được đánh một mã số gọi là mã khóa tình yêu. Các mã số đều có \(n\) chữ số và các chữ số đều là 01, không mã số nào trùng nhau. Nếu cháu tìm được mã số nào không chứa quá \(k\) chữ số 0 hoặc chữ số 1 liên tiếp nhau thì cháu sẽ được chinh phục cô gái ấy.” Đôrêmon rất sung sướng và muốn đếm thật nhanh mình có thể chinh phục bao nhiêu cô gái nhưng chuối cái là anh chàng này lại không biết làm cách nào. Bạn hãy giúp Đôrêmon đếm nhé.

Yêu cầu: Hãy đếm số cô gái mà Đôrêmon có thể chinh phục?

Dữ liệu

  • Gồm 1 dòng duy nhất chứa 2 số \(n\) và \(k\). (\(2 ≤ k ≤ n ≤ 1000\)).

Kết quả

  • Gồm 1 số duy nhất là số cô gái mà Đôrêmon có thể chinh phục.

Input

3 2

Output

6

Giải thích: Gồm các xâu (001, 010, 011, 100, 101, 110)

Input

4 2

Output

10

Giải thích: Gồm các xâu (0010, 0011, 0100, 0110, 0101, 1001, 1010, 1011, 1100, 1101)

Ràng buộc

  • Subtask 1: 15% số test ứng với độ dài mã số không vượt quá 15.
  • Subtask 2: 15% test ứng với độ dài mã số không vượt quá 300.
  • Subtask 3: Các test còn lại ứng với độ dài mã số không vượt quá 1000.

Nguồn: CĐ DHDBBB 2020

Con cừu hồng

CarlavierVN

CarlavierVN rất thích chơi minecraft. Một hôm được nghỉ, anh tạo một thế giới minecraft mới với cái tên “Super Ultimate Ultra Final Nonpareil Survival” và bật chế độ LAN, chơi cùng với Hội Anh em Đa cấp A519. Là một người yêu màu hường ghét sự giả dối, mục tiêu của anh không phải là thành lập một đế chế VierTech hùng mạnh và bá đạo mà là đi tìm những con cừu hồng được sinh ra tự nhiên trong thế giới minecraft đó.

Theo như con mắt tinh tường đã debug qua kha khá dòng code của CarlavierVN thì anh nhận thấy rằng cứ \(100\) giây thì sẽ luôn có \(1\) con cừu được cơ chế Random Generation sinh ra và tỉ lệ sinh ra cừu hồng bên cạnh những con cừu có lông không phải màu hồng cũng được quyết định thông qua hàm Random Number Generation là \(0.164\%\). với mỗi \(1\) con cừu được sinh ra, tỉ lệ con cừu tiếp theo được sinh ra là cừu hồng sẽ tăng thêm \(0.164\%\) vào số tỉ lệ tổng \(p\). Nếu nhân phẩm cao, con con cừu hồng vào một lúc nào đó sẽ sinh ra dựa theo số tỉ lệ tổng là \(p\). Tỉ lệ \(p\) càng cao, xác suất sinh ra cừu hồng càng lớn. Sau khi một con cừu hồng được sinh ra, tỉ lệ tổng p lập tức giảm xuống \(0\%\) như ban đầu. Với \(p=100\%\) thì con cừu tiếp theo được sinh ra chắc chắn sẽ là cừu hồng. Nhưng vừa nhớ ra là còn vài bài toán nhân ma trận chưa làm, CarlavierVN lập tức AFK và chuyển sang tab DevC++ để hoàn thành.

Vì quá bận debug những dòng code “không được clean cho lắm” của chính mình nhưng vẫn muốn chăn cừu, những bạn học sinh giỏi tin là những người CarlavierVN có thể tin tưởng giao cho nhiệm vụ cao cả này. Các bạn hãy giúp CarlavierVN in ra màn hình số con cừu hồng anh đã có sau \(n\) giây AFK nhé!!!

Lưu ý: vì đang chơi ở chế độ LAN nên khi CarlavierVN AFK cừu vẫn được sinh ra như bình thường.

input: gồm 1 số \(n\) là số giây CarlavierVN đã AFK \((n \le 10^{50})\)

output: gồm 1 số duy nhất là số cừu hồng mà CarlavierVN đã có sau \(n\) giây AFK

Sample:

Input: 50 Output: 0

Input: 500 Output: 0

Giải thích:

  • Test 1: Vì mới chỉ có \(50s\) sau khi tạo thế giới, chưa có con cừu nào được sinh ra trong thế giới của CarlavierVN cả
  • Test 2: sau \(500s\), tổng tỉ lệ \(p\) có giá trị là \(0.82\%\), quá thấp để có thể sinh ra được \(1\) con cừu hồng để thỏa mãn thú tính của CarlavierVN

Tính tổng (OLP MT&TN 2021 CT)

Small

Trang https://lqdoj.edu.vn/ đang là một trang học lập trình của nhiều học sinh, đó cũng là trang mà Hồng luyện tập để chuẩn bị cho kỳ thi Tin học trẻ. Hàng ngày, mẹ giao nhiệm vụ dạy em Phúc luyện tập về phép cộng, để có nhiều thời gian code, Hồng đã nghĩ ra loại bài tập cho em Phúc như sau: Chọn một số nguyên dương \(n\), em Phúc cần phải cộng liên tiếp các số \(n\) cho tới khi tất cả các chữ số của tổng nhận được đều bằng nhau và trả lời số lượng số đã cộng. Ví dụ, nếu \(n=37\) thì em Phúc cần cộng ba số 37 để nhận được tổng là 111 có các chữ số giống nhau.

Nhằm lựa chọn số nguyên dương \(n\) để em Phúc không phải cộng quá nhiều và kiểm tra câu trả lời của em Phúc, Hồng muốn xây dựng một chương trình tính số lượng số cần cộng với một số nguyên dương \(n\).

Dữ liệu: Vào từ thiết bị vào chuẩn gồm một dòng chứa một số nguyên dương \(n (n<10^3)\).

Kết quả: Ghi ra thiết bị ra chuẩn một dòng chứa một số nguyên là số lượng số cần cộng. Trường hợp số \(n\) đã gồm các chữ số giống nhau chỉ cần ghi số 1, trường hợp không tồn tại tổng có các chữ số giống nhau ghi -1.

Ràng buộc:

  • Có 40% số lượng test ứng với 40% số điểm mà số lần cộng không vượt quá \(10^6\);
  • Có 60% số lượng test còn lại ứng với 60% số điểm, không có ràng buộc nào thêm.

Ví dụ:

Dữ liệu vào

37

Kết quả ra

3

Dữ liệu vào

11

Kết quả ra

1

Dữ liệu vào

100

Kết quả ra

-1

Số thân thiện (HSG12'20-21)

Small

Hai số tự nhiên coi là thân thiện nếu chúng có cùng chung một tỷ lệ \(abundancy\), là tỷ lệ giữ tổng các ước số của một số chia cho chính nó.

Ví dụ: Hai số 30 và 140 là hai số tự nhiên thân thiện vì chúng có cùng \(abundancy\)

\(\frac{\sigma (30)}{30}=\frac{1+2+3+5+6+10+15+30}{30}=\frac{72}{30}=\frac{12}{5}\)

\(\frac{\sigma (140)}{140}=\frac{1+2+4+5+7+10+14+20+28+35+70+140}{140}=\frac{336}{140}=\frac{12}{5}\)

Yêu cầu: Cho hai số \(a\) và \(b\) (\(1 \le a,b \le 10^9\)) kiểm tra xem hai số này có là hai số thân thiện không?

Diệu liệu

  • Dòng một ghi số \(a\)
  • Dòng hai ghi số \(b\)

Kết quả

  • Nếu hai số đó là thân thiện thì ghi tỷ lệ \(abundancy\), mỗi số trên một dòng, ngược lại thì ghi -1 trên một dòng.

Input

30 
140

Output

12
5

Nguồn: HSG lớp 12 TPĐN '2020-2021

Dãy con min max

admin

Cho một dãy gồm \(n\) số nguyên \(A=(a_1,a_2,…,a_n)\). Ta định nghĩa: đoạn con của dãy \(A\) là một dãy các phần tử liên tiếp nhau thuộc \(A\). Hoặc có thể viết (\(a_i,a_(i+1),…,a_j\)) là một đoạn con của \(A\) với \(i ≤ j\). Độ dài của đoạn con được tính là số phần tử của đoạn con đó, ví dụ, đoạn con trên có độ dài là \(j-i+1\).

Yêu cầu: Tìm một đoạn con có độ dài ngắn nhất chứa cả số lớn nhất và số nhỏ nhất của dãy \(A\).

Dữ liệu vào

  • Dòng đầu chứa số nguyên dương \(n\) (\(1 ≤ n ≤ 10^5\)).
  • Dòng tiếp theo chứa \(n\) số nguyên \(a_1,a_2,….,a_n\).

Kết quả:

  • Một số duy nhất là độ dài của đoạn con tìm được thỏa mãn yêu cầu đề bài.

Sample Input

8
1 3 6 2 8 1 3 8

Sample Output

2

Nguồn: 2019 ĐHSP

Dãy số chia hết

dang7rickroll

Cho dãy gồm \(n\) số nguyên dương và một số nguyên \(K\). Bạn hãy giúp Tèo tìm ra đoạn con dài nhất gồm các phần tử liên tiếp sao cho tổng các phần tử này chia hết cho \(K\).

Dữ liệu vào:

  • Dòng \(1\) là \(N\) và \(K\) \((1 \le n, k \le 10^5)\)
  • Dòng thứ \(2\) chứa dãy số \(n\) phần tử \((0 \le A_i \le 10^9)\)

Kết quả:

  • Là độ dài lớn nhất tìm được.

Sample input

9 4
3 9 9 5 1 1 10 3 5

Sample output

6

Nguồn: NTUCODER

Giải phương trình tổng các ước

jumptozero

Kí hiệu \(d(n)\) là tổng các ước nguyên dương của số nguyên dương \(n\), tức là: \(d(n)=\sum\limits_{k|n}k\)

Cho trước số nguyên \(c\), hãy tìm số nguyên dương \(n\) nhỏ nhất thoả mãn: \(d(n)=c\)

Input:

  • Dòng thứ nhất chứa số \(t(1\le t\le 10^4)\) - Thể hiện số lượng testcase

  • \(t\) dòng tiếp theo, mỗi dòng chứa số \(c(1\le c\le 10^7)\)

Output:

  • Ứng với mỗi testcase, in ra số nguyên dương \(n\) thoả mãn yêu cầu bài toán. Nếu không có in ra -1

Ví dụ:

Input 1:

9
11
87
58
92
83
74
7
13
77

Output 1:

-1
-1
-1
-1
-1
73
4
9
-1

Input 2:

6
6
75
89
2
84
70

Output 2:

5
-1
-1
-1
44
-1

Mạng giao thông (HSG11v1-2021)

Small

Input
10 10 8 10
1 2 
1 3 
1 4 
2 5 
2 6 
3 7 
3 8 
4 9 
4 10
8 9

Output
3

Input
4 2 2 3
1 2 
3 4

Output
0

Xâu con chung dài nhất 2

hhoangcpascal

Cho hai xâu \(S\) và \(T\) chỉ gồm các chữ cái thường 'a'..'z'. Tìm độ xâu con chung dài nhất (subsequence) của hai xâu \(S\) và \(T\).

Dữ liệu vào: Gồm hai dòng

  • Dòng thứ nhất chứa xâu \(S\).
  • Dòng thứ hai chứa xâu \(T\).

Kết quả: In ra độ dài xâu con chung dài nhất cần tìm.

Chú ý: Một xâu con của một xâu \(X\) bất kì thu được bằng cách xóa đi một vài kí tự (có thể không xóa kí tự nào) từ xâu \(X\) và nối những phần tử còn lại mà không thay đổi thứ tự của chúng.

Ví dụ:

Input:

axyb
abyxb

Output:

3

Giới hạn:

  • \(50\)% số test đầu tiên tương ứng với \(50\)% số điểm có \(|S|, |T| \le 10^3\).
  • \(50\)% số test còn lại tương ứng với \(50\)% số điểm có \(|S|, |T| \le 10^4\).

Nguồn: Cấp độ khó hơn của bài Xâu con chung dài nhất của jumptozero

Chơi xu

BichSonNhat

Quá nhàm chán trong mùa \(translate\), BichSonNhat đành rủ chơi một trò chơi rút xu từ tháp được xây dựng bởi \(N\) đồng xu. Hai bạn chọn hai số nguyên dương khác nhau \(K\) và \(L\) để chơi. BichSonNhat chơi trước. Mỗi người, khi đến lượt mình, được bốc khỏi tháp \(1\), \(K\) hoặc \(L\) xu. Ai bốc được đồng xu (hoặc các đồng xu) cuối cùng là thắng. Sau rất nhiều lần chơi, BichSonNhat nhận thấy rằng có những trường hợp mình chắc chắn thắng không phụ thuộc vào cách đi của , ngược lại, có trường hợp dù đi thế nào thì vẫn thắng. Trước ván chơi mới BichSonNhat nóng lòng muốn biết mình có thắng được hay không. Hãy giúp anh ấy nhé!

Dữ liệu vào:

Dòng đầu tiên chứa 3 số nguyên \(K\), \(L\) và \(m\), trong đó \(m\) – số ván chơi \((1 < K < L < 10, 3 < m < 50)\).

Dòng thứ \(2\) chứ \(m\) số nguyên \(N_{1}\), \(N_{2}\), \(N_{3}\), ... \(N_{m}\), trong đó \(N_{i}\) là số xu trong tháp ở ván chơi thứ \(i\) \((1 ≤ N_{i} ≤ 10^ 6)\).

Kết quả:

Đưa ra xâu m ký tự từ tập {\(A, B\)}, ký tự thứ \(i\) là \(A\) nếu BichSonNhat thắng được và bằng \(B\) nếu thắng.

Sample Input

2 3 5
3 12 113 25717 88888

Sample Output

ABAAB

Giải thích:

Ta có : \(K = 2, L = 3\)

• Xét \(N_{1} = 3\), BichSonNhat có thể bốc \(3\) xu từ tháp, do đó BichSonNhat thắng và xuất ra \(A\).

• Xét \(N_{2} = 12\), không có cách nào để BichSonNhat thắng, do đó thắng và xuất ra \(B\).

Memorise Me!

dang7rickroll

ABC là 1 cậu bé thông minh, cậu rất thích chơi đùa với dãy số, đặc biệt là những trò dãy số liên quan đến trí nhớ. Bình thường cậu chỉ chơi 1 mình, nhưng lần này có XYZ cùng tham gia. XYZ là 1 cô nàng xinh đẹp nhưng lại không giỏi về việc ghi nhớ dãy số. Khổ nỗi, XYZ lại crush ABC, cô muốn nhân dịp này để gây ấn tượng với ABC, vậy nên cô muốn nhờ đến trí thông minh của các bạn để ăn gian trò chơi này.

ABC sẽ đưa cho XYZ \(Q\) truy vấn, mỗi truy vấn là 1 số nguyên, yêu cầu của XYZ là phải in ra số lần xuất hiện của số nguyên đó trong mảng. Nếu số nguyên không xuất hiện lần nào thì in ra NOT PRESENT.

Dữ liệu:

  • Dòng đầu là số nguyên dương \(N\).
  • Dòng thứ hai bao gồm \(N\) số nguyên của mảng.
  • Dòng đầu là số truy vấn \(Q\).
  • \(Q\) dòng tiếp theo, là số nguyên mà bạn cần tìm ra số lần xuất hiện của nó.

Kết quả:

  • Ứng với mỗi truy vấn, in ra kết quả cần tìm.

Sample input

6
1 1 1 2 2 0
6
1
2
1
0
3
4

Sample output

3
2
3
1
NOT PRESENT
NOT PRESENT

Giới hạn:

  • \(1 \le N, Q \le 10^5\)
  • \(0 \le A_i \le 1000\)

Nguồn: kid2201

P/s: Bài này cẩn thận bộ nhớ thấp :)

Đếm cặp CWD

CaiWinDao

zipdang04 vừa tốt nghiệp thủ khoa Học viện Hàng không ở tuổi \(15\). Các hãng hàng không lớn đã lũ lượt đưa ra những bổng lộc hấp dẫn để thu hút phi công zipdang04 về với công ty của mình. Tuy nhiên, cậu chỉ dành sự quan tâm của mình cho duy nhất hãng LMH Airway - dưới sự lãnh đạo của chủ tịch LMH và phó chủ tịch ami. Dù vậy, zipdang04 vẫn yêu cầu ngài phó chủ tịch phải vượt qua được một thách thức của mình để hoàn toàn làm cậu tâm phục khẩu phục quy thuận công ty.

Cậu viết ra một dãy số nguyên dương \(a_1, a_2, a_3, ..., a_n\) rồi yêu cầu ami phải trả lời \(Q\) câu hỏi. Ở mỗi câu hỏi, zipdang04 đưa ra hai vị trí \(L\) và \(R\) \((1 \leq L < R \leq n)\) rồi yêu cầu ami đếm xem có bao nhiêu cặp vị trí \((i, j)\) sao cho \(\left|a_i-a_j\right| > 1\) và \(L \leq i < j \leq R\). ami nhanh chóng giải đáp được một số câu hỏi đầu của zipdang04 nhưng vì số câu hỏi quá lớn nên ami dần lâm vào tình trạng hoa mắt chóng mặt với mớ dữ liệu phức tạp này. Bạn hãy giúp ami giải đáp tất cả \(Q\) câu hỏi để chiêu mộ nhân tài zipdang04 nhé!


Input:

  • Dòng đầu chứa số nguyên dương \(n \leq 50,000\).
  • Dòng tiếp theo chứa \(n\) số nguyên dương \(a_1, a_2,...,a_n\). Các số đều không vượt quá \(10,000\).
  • Dòng tiếp theo chứa số nguyên dương \(Q \leq 50,000\) là số lượng câu hỏi dành cho ami.
  • \(Q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên dương \(L\) và \(R\) biểu thị câu hỏi tương ứng.

Output:

Gồm \(Q\) dòng, mỗi dòng chứa một số nguyên là đáp số cho câu hỏi tương ứng của zipdang04.


Ví dụ

Input
6
1 2 3 7 8 9
2
2 3
3 5
Output
0
2

Đong nước

Small

Cho một thùng nước và hai gáo nước có dung tích lần lượt là \(A\) và \(B\). Ban đầu thùng nước rỗng. Một người phải dùng hai gáo nước múc nước vào thùng, với điều kiện khi múc vào hay múc ra đều phải đong đầy gáo. Hãy tìm cách dùng số lần múc nước ít nhất để có được lượng nước là \(C\) trong thùng.

Dữ liệu

  • Dòng 1 chứa số \(k ≤ 100\) là số test.
  • \(k\) dòng tiếp theo, mỗi dòng chứa ba số nguyên dương \(A, B, C ≤ 10^9\) cách nhau bởi dấu cách, tương ứng với một test.

Kết quả

  • Với mỗi test, ghi ra trên một dòng một số nguyên duy nhất là số lần múc theo phương án tìm được, nếu không thể thực hiện yêu cầu ghi ra số -1.

Sample input

2
15 24 3
100 27 8

Sample output

5
5

Giải thích:

  • Test 1: Dùng giáo 24 múc vào 2 lần và dùng gáo 15 đổ ra 3 lần.
  • Test 2: Dùng gáo 27 múc vào 4 lần và dùng gáo 100 múc ra 1 lần.

Nguồn: LMH-ĐHSP

TWICE3

vinhntndu

SPyofgame là một chú ếch sống trong một đầm lầy. Trong đầm lầy, có N lá sen được đánh số từ 1 đến N. Các lá sen có tọa độ nguyên trên mặt phẳng tọa độ. SPyofgame chỉ có thể nhảy từ lá sen này qua lá sen khác khi xảy ra 1 trong 2 trường hợp sau:

  • \(x_{2}\) > \(x_{1}\) và \(y_{2}\) = \(y_{1}\)
  • \(x_{2}\) = \(x_{1}\) và \(y_{2}\) > \(y_{1}\)

Trên mỗi chiếc lá có một số con ruồi và SPyofgame có thể dùng lưỡi của mình để ăn chúng. SPyofgame hấp thụ một đơn vị năng lượng cho mỗi con ruồi ăn được và sử dụng K đơn vị năng lượng cho mỗi lần nhảy. SPyofgame không thể nhảy nếu không có đủ đơn vị năng lượng trước đó.

SPyofgame muốn đi từ chiếc lá 1 đến chiếc lá N và có lượng năng lượng lớn nhất có thể sau khi đến. SPyofgame ban đầu không có năng lượng và phải thu thập năng lượng cho lần nhảy đầu tiên của mình từ những con ruồi xung quanh chiếc lá 1.

Hãy giúp SPyofgame có thể đi từ 1 đến N với năng lượng lớn nhất.

INPUT

  • Dòng một là hay số nguyên dương N, K ( 2 ≤ N ≤ 300000, 1 ≤ K ≤ 1000)
  • i dòng tiếp theo (1 ≤ i ≤ N), mỗi dòng là 3 số nguyên dương X, Y, Z (0 ≤ X, Y ≤ 100000, 0 ≤ Z ≤ 1000) với X, Y là tọa độ lá thứ i, Z là số lượng con ruồi trên chiếc lá mà SPyofgame có thể ăn để tích năng lượng. Lưu ý rằng sẽ không có hai chiếc lá nào cùng tọa độ.

OUTPUT

  • Dòng đầu tiên in ra số năng lượng của SPyofgame khi đến chiếc lá N.
  • Dòng thứ hai in ra M là số lá cây SPyofgame đi qua.

Ví Dụ

INPUT

6 5
1 1 5
2 1 5
1 2 4
2 3 5
3 2 30
3 3 5

OUTPUT

5
4

Đảo nữ hoàng

cuom1999, CaiWinDao

Ước mơ của Lương là trở thành tỉ phú để mua cho Vy một hòn đảo. Trong giấc mơ đó, Lương đặt tên hòn đảo là đảo VH. Trên hòn đảo đó, Lương sẽ trang bị mọi tiện nghi để Vy cảm thấy mình như một nữ hoàng thực sự. Một trong số những tiện nghi cần thiết nhất là hệ thống internet và truyền hình để anh trai và em gái có thể nói chuyện với nhau ở mọi nơi trên hòn đảo.

Để thực hiện kế hoạch phủ sóng hòn đảo, Lương đã xây dựng \(n\) trạm thu phát sóng. Mỗi trạm thu phát sóng có bán kính hoạt động giống nhau là \(r\) và có thể nhận tín hiệu từ các trạm thu khác trong tầm hoạt động của nó. Nói cách khác, trạm \(A\) và \(B\) được kết nối khi và chỉ khi \(AB \leq r\). Để mua thiết bị thu phát có bán kính \(r\), Lương cần bỏ ra chi phí là \(X * r\) với \(X\) là hằng số cho trước. Lương cũng có một lựa chọn khác là sử dụng dây ngầm nối trực tiếp 2 trạm thu phát bất kỳ, mỗi đường dây sẽ tốn chi phí là \(Y\) đồng.

Lương cần kết hợp hai loại kết nối trên để đảm bảo tất cả các trạm thu phát có thể được kết nối với nhau (trực tiếp hoặc gián tiếp). Tìm chi phí nhỏ nhất Lương cần bỏ ra để chinh phục Vy (trong mơ). Lương muốn bạn trả lời câu hỏi với \(q\) truy vấn \((X, Y)\).

Input

  • Dòng đầu tiên chứa hai số tự nhiên \(n, q \ (n, q \leq 2000)\)
  • \(n\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(x_i, y_i \ (|x_i|, |y_i| \leq 10^5)\) tương ứng với tọa độ của trạm thu phát sóng thứ \(i\). Không có hai trạm thu nào có cùng tọa độ.
  • \(q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(X, Y \ (0 \leq X, Y \leq 10^9)\) tương ứng với một truy vấn.

Output

Với mỗi truy vấn, in ra một dòng là chi phí nhỏ nhất Lương cần bỏ ra để chinh phục em gái. Kết quả được chấp nhận nếu sai số không vượt quá \(10^{-6}\).

Ví dụ

Input 1

4 2
0 0
0 5
5 0
10 10
1 3
10 10000

Output 1

8.0000000000
111.8033988750

Input 2

3 2  
0 0
0 5
5 0
10 1
0 10

Output 2

2.0000000
0

Giới hạn

  • \(20 \%\) số test có \(X = 10^9, Y \leq 10^6\) và \(q \leq 10\).
  • \(20 \%\) số test có \(Y = 10^9\) và \(q \leq 10\).
  • \(30 \%\) số test có \(q \leq 10\).
  • \(30 \%\) số test còn lại không có điều kiện gì thêm.

Giải thích

Trong truy vấn 1 của test ví dụ 1, Lương chọn \(r = 5\) và chọn nối dây giữa 2 trạm \((0, 5)\) và\((10, 10)\). Chi phí bỏ ra là \(X * r + Y * 1 = 8\). Trong hình dưới, đường nối liền biểu thị đường dây ngầm, và đường gạch nối biểu thị sự kết nối thông qua thiết bị thu phát vô tuyến.

Sample1

Trong truy vấn 1 của test ví dụ 2, Lương chọn \(r = 0\) (không đặt trạm thu phát), và đặt hai đường dây ngầm nối trạm 1-3 và 1-2. Chi phí là \(2Y = 2\).

Khoảng cách Manhattan lớn nhất

letangphuquy

Cho \(n \leq 3*10^5\) điểm trên mặt phẳng tọa độ Oxy. Bạn cần tính khoảng cách lớn nhất giữa 2 điểm bất kì.

Biết công thức tính khoảng cách Manhattan giữa 2 điểm \(A\) và \(B\) là \(|x_{A} - x_{B}| + |y_{A} - y_{B}|\).


Input

Dòng đầu tiên chứa một số nguyên \(n\).

Trong \(n\) dòng tiếp theo, mỗi dòng chứa 2 số \(x_i, y_i\) là tọa độ của điểm thứ \(i\).

Mọi điểm được cho đều có tọa độ nguyên và \(|x|,|y| \leq 10^9\).

Output

Một số nguyên duy nhất là kết quả của bài toán.


Ví dụ

Input

3
1 -2
3 7
-6 4

Output

13

Biến đổi số

admin

Vào một buổi sáng, rất tình cờ Nam nhìn thấy một số nguyên dương N trên đường từ nhà đến trường. Vì Nam rất thích số \(30\) nên Nam muốn biến đổi số \(N\) thành số \(M\) có dạng là số lớn nhất và là bội của số \(30\) bằng cách thay đổi vị trí của các chữ số trong số \(N\) mà Nam nhìn thấy.

Yêu cầu: Hãy trợ giúp Nam bằng cách viết một chương trình tìm số \(M\) (nếu nó tồn tại).

Dữ liệu vào

  • Gồm 1 dòng duy nhất chứa số nguyên \(N\), số \(N\) có tối đa là \(10^5\) chữ số.

Kết quả

  • In số \(M\) vừa tìm được. Nếu không tồn tại \(M\) thì in ra \(-1\).

Sample Input

30

Sample Output

30

Sample Input

102

Sample Output

210

Sample Input

3333333333333333333333333333

Sample Output

-1