Orange Contest #1

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
A Truy Tìm Kho Báu 1 100 1.0s 256M
B Truy Tìm Kho Báu 2 100 0.5s 256M
C Truy Tìm Kho Báu 3 100 1.0s 256M
D Truy Tìm Kho Báu 4 100 0.1s 256M
E Truy Tìm Kho Báu 5 100 0.1s 256M

A. Truy Tìm Kho Báu 1

Điểm: 100 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Hôm nay, nhân ngày 1/6, bố mẹ cho BabyOrange đi chơi. Thế nhưng, chuyến "đi chơi" thực chất là một chuyến đi tìm kho báu. :)
BabyOrange tuy không biết kho báu ở đâu, nhưng lại biết khoảng cách từ nhà tới chỗ kho báu :)
Nhiệm vụ của bạn là cho \(a\) (km/h) là vận tốc của BabyOrange\(n\) (km) là khoảng cách từ nhà tới kho báu. Hãy tính thời gian (phút) di chuyển từ nhà tới kho báu của BabyOrange

Input

  • Một dòng gồm 2 số \(n\)\(a\)
  • \(0 \le n \le 10^{18}\)
  • \(1 \le a \le 10^{18}\)

Output

  • Một dòng chứa một số là thời gian di chuyển. Làm tròn đến chữ số thập phân thứ 3.

Example

Test 1

Input
8 3
Output
160.000
Note

\(\frac{8}{3} \times 60\) = 160

Test 2

Input
89764565 798653
Output
6743.697
Note

\(\frac{89764565}{798653} \times 60 \approx 6743.697\)

B. Truy Tìm Kho Báu 2

Điểm: 100 Thời gian: 0.5s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Sau khi tới nơi có kho báu, BabyOrange tưởng rằng họ đã có kho báu nhưng thực chất lại không hề như vậy. Chỉ là một khu rừng hoang sơ với một con đường nhỏ giữa khu rừng. Vì tò mò, họ quyết định đi trên con đường đó. Trên đường, cậu phát hiện có một bức tường chặn giữa đường, giữa bức tường có một cánh cửa bị khóa. Cậu còn phát hiện trên bức tường có khắc một dãy \(N\) con số và một con số \(S\).
Đột nhiên, một dòng chữ trên bức tường bỗng phát sáng: "Muốn bước qua bức tường, cần tìm ra mật mã để mở phong ấn, mật mã chính là tổng số lượng các đoạn liên tiếp trên phiến đã có tổng chia hết cho \(S\)"
Hãy giúp BabyOrange giải mật mã nhé
Lưu ý: Dãy số có thể có số âm 🙂

Input

  • Dòng đầu chứa 2 số nguyên \(N\) \((1 \le n \le 200000)\)\(S\) \((-10^{14} \le S \le 10^{14})\)
  • Dòng thứ hai gồm n số nguyên dương \((-10^9 \le {n_i} \le 10^9)\)

Output

  • Gồm một số chính là kết quả đề bài

Example

Test 1

Input
5 3
1 2 -1 4 2
Output
4
Note

Các đoạn con liên tiếp có tổng chia hết cho 3 là:
{1, 2}; {1. 2, -1, 4}; {-1, 4}; {4, 2}

Test 2

Input
8 5
4 1 3 -8 5 -2 7 3
Output
13

C. Truy Tìm Kho Báu 3

Điểm: 100 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Vượt qua cánh cửa, BabyOrangehoangks7 bước vào một con đường gồm \(n\) viên đá phát sáng. Tuy nhiên, mụ phù thủy liên tục ếm bùa thay đổi "độ nguy hiểm" của con đường. Mụ thực hiện \(Q\) phép thuật. Mỗi phép thuật có thể là cộng thêm độ nguy hiểm vào một đoạn đá từ \(L\) đến \(R\), hoặc yêu cầu họ phải tính tổng độ nguy hiểm từ viên đá \(u\) đến \(v\) để tìm cách bước qua.
Lưu ý: Độ nguy hiểm của \(n\) viên đá lúc đầu đều = 0 và mụ phù thủy có thể giảm độ nguy hiểm nếu \(V\) là số âm

Input

  • Dòng đầu gồm \(n\) viên đá và \(Q\) truy vấn \((n, Q \le 2 \times 10^5)\)
  • \(Q\) dòng tiếp theo, mỗi dòng có định dạng như sau:
  • \(1\) \(L\) \(R\) \(V\): Cộng \(V\) vào đoạn \([L,R]\)
  • \(2\) \(u\) \(v\): Tính tổng độ nguy hiểm đoạn \([u,v]\) (modulo \(10^9\) + 7)

Output

  • Mỗi lần yêu cầu tính tổng độ nguy hiệm, đưa ra một số là đáp án yêu cầu.

Example

Test 1

Input
5 4
1 1 3 5
2 2 4
1 3 5 2
2 1 5
Output
10
21
Note

Ban đầu, độ nguy hiểm của 5 viên đá là 0: [0, 0, 0, 0, 0]
1: Cộng 5 điểm nguy hiểm vào viên đá thứ 1 tới viên thứ 3. Độ nguy hiểm trở thành [5, 5, 5, 0, 0]
2: Tính tổng độ nguy hiểm từ viên thứ 2 đến thứ 4: 5 + 5 + 0 = 10. In ra 10
3: Công 2 điểm nguy hiểm vào viên thứ 3 đến thứ 5: [5, 5, 7, 2, 2]
4: Tính tổng độ nguy hiểm từ viên thứ 1 đến thứ 5: 5 + 5 + 7 + 2 + 2 = 21. In ra 21

Test 2

Input
5 8
1 1 5 1000000000
2 2 4
1 2 3 -2000000000
2 1 5
2 2 3
1 3 5 500000005
2 1 4
2 3 5
Output
999999986
1000000000
14
3
500000001

D. Truy Tìm Kho Báu 4

Điểm: 100 Thời gian: 0.1s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Qua được con đường, BabyOrangehoangks7 tới một khe nứt vực thẳm. Bắc ngang qua nó là một cây cầu treo dài \(n\) mét. Cả hai người có thể nhảy 1 mét, 2 mét hoặc 3 mét mỗi bước nhảy, và họ đều nhảy cùng lúc. Nhiệm vụ của bạn là tính số cách để họ nhảy qua bên kia. Vì kết quả có thể rất lớn, nên chỉ lấy phần dư khi chia cho \(10^9 + 7\)

Input

  • Một dòng duy nhất chứa số \(n\) \((1 \le n \le 10^{18})\)

Output

  • Một dòng chứa số cách sau khi chia lấy dư cho \(10^9 + 7\)

Example

Test 1

Input
3
Output
4
Note

Có 4 cách để đi qua cây cầu dài 3 mét:

  • 1m + 1m + 1m
  • 1m + 2m
  • 2m + 1m
  • 3m

E. Truy Tìm Kho Báu 5

Điểm: 100 Thời gian: 0.1s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Sau khi băng qua cây cầu treo, BabyOrangehoangks7 tìm thấy được rương kho báu, mỗi tội... nó bị khóa :(
BabyOrange đột nhiên thấy có gợi ý trên rương, nhờ gợi ý, cả hai người mới biết mật mã là số lượng các "Số Hạnh Phúc" trong khoảng từ \(L\) đến \(R\). Nhiệm vụ của bạn là tìm mật mã cho chiếc rương kho báu đó.
Một số được gọi là "Số Hạnh Phúc" nếu:

  • Tổng các chữ số là một số nguyên tố
  • Bản thân số đó chia hết cho \(K\)

Input

  • Một dòng chứa 3 số nguyên \(L\), \(R\), \(K\)
  • \(1 \le L \le R \le 10^{18}\), \(1 \le K \le 100\)

Output

  • Một dòng chứa một số là số lượng "Số Hạnh Phúc"

Example

Test 1

Input
10 20 2
Output
4
Note

Các Số Hạnh Phúc là: 12, 14, 16, 20