Tổng chẵn lẻ

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 5

Cho số tự nhiên ~N~. Hãy tìm số tự nhiên ~K~ nhỏ nhất sao cho tổng các số lẻ từ ~1~ đến ~K~ lớn hơn tổng các số chẵn từ ~K + 1~ đến ~N~.

Input
  • Gồm một dòng chứa một số tự nhiên ~N~ ~(N \le 10^9)~
Output
  • Gồm một dòng chứa một số tự nhiên là số ~K~ nhỏ nhất thoả mãn.
Subtask
  • Subtask ~1~ (~80\%~ số điểm): ~n \le 1000~.
  • Subtask ~2~ (~20\%~ số điểm): Không có ràng buộc gì thêm.
Sample Input 1
10
Sample Output 1
8
Explanation 1

~1 + 3 + 5 + 7 > 10~


mindictnum

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 4

Cho một dãy số gồm ~n~ số nguyên. Cần chọn ra ~m~ số, sao cho khoảng cách nhỏ nhất giữa hai số bất kỳ là lớn nhất có thể.

INPUT

Dòng đầu tiên gồm hai số ~n~ và ~m~ (~1 \le m \le n \le 10^5~)

Dòng thứ hai gồm ~n~ số nguyên ~a_1, a_2, ..., a_n~ (các số có giá trị không quá ~10^9~)

OUTPUT

In ra giá trị lớn nhất của khoảng cách nhỏ nhất giữa hai số bất kì trong các số được chọn ra.

SAMPLE INPUT

5 3
1 9 2 4 8

SAMPLE OUTPUT

3

Giải thích: Có thể chọn ra ~3~ số: ~1, 4, 8~. Khoảng cách bé nhất là ~3~.


Tổng Và Tích

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 4

Cho dãy ~a~ gồm ~n~ số nguyên.

Bạn phải trả lời ~q~ truy vấn, mỗi truy vấn cho hai số nguyên ~b, c~, bạn cần tìm số cặp ~(i, j)~ thoả mãn:

  • ~1 \le i < j \le n~.
  • ~a_i + a_j = b~.
  • ~a_i \times a_j = c~.

Input

  • Dòng thứ nhất chứa một số nguyên dương ~n~ (~1 \le n \le 2 \times 10^5~).
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, ..., a_n~ (~1 \le |a_i| \le 10^9~).
  • Dòng thứ ba chứa một số nguyên dương ~q~ (~1 \le q \le 2 \times 10^5~).
  • ~q~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~b, c~ mô tả một truy vấn (~1 \le |b| \le 2 \times 10^9~, ~1 \le |c| \le 10^{18}~).

Output

  • Với mỗi truy vấn, đưa ra trên một dòng một số nguyên là kết quả của truy vấn đó.

Scoring

Subtask Điểm Giới hạn
1 20% ~n \le 10^3~, ~q = 1~
2 20% ~|a_i| \le 10^6, |c| \le 10^9~
3 20% ~|c| \le 10^9~
4 20% ~a_i~ phân biệt từng đôi một
5 20% Không có ràng buộc gì thêm

Sample Input 1

3
1 3 2
1
3 2

Sample Output 1

1

Alice in Bruhderland

Nộp bài
Time limit: 0.8 / Memory limit: 1G

Point: 4

Alice vừa mới lạc vào một vùng đất rất kì lạ tên là "Bruhderland". Đây là một vùng đất lai giữa "Wonderland" và "Borderland", nơi có phép màu và cả những trò chơi sinh tử.

Bruhderland được biểu diễn bằng một ma trận ~n \times m~, với ô ~(i,j)~ là một trong các kí tự sau:

  • .: có nghĩa là ô đất trống, có thể đi vào.
  • *: có nghĩa là ô có một tảng đá, không thể đi vào.
  • A: có nghĩa là có một trò chơi với độ khó ~A~ ở ô này, Alice rất giỏi nên sẽ có thể vượt qua trò chơi, nhưng sẽ mất ~1~ sức lực.
  • B: có nghĩa là có một trò chơi với độ khó ~B~ ở ô này, Alice vẫn sẽ có thể vượt qua trò chơi, nhưng sẽ mất ~2~ sức lực.

Giả sử, Alice đang ở ô ~(i,j)~, cô có thể đi sang ~4~ ô kề cạnh nếu như ô đó không vượt qua ngoài bảng và không chứa tảng đá nào. Như đã nói, Bruhderland có cả yếu tố phép màu, vậy nên khi vào đây, cô đã học được cách đọc thần chú để phá hủy một tảng đá bất kì mà không mất sức lực nào (nghĩa là có thể đi vào ô chứa tảng đá vừa bị phá hủy), tuy nhiên do năng lực giới hạn, Alice chỉ có thể đọc thần chú ~k~ lần mà thôi.

Alice đang ở ô ~(1,1)~, để thoát ra khỏi Bruhderland, cô sẽ cần đến ô ~(n,m)~. Tuy nhiên, do khá lười tham gia vào các trò chơi, Alice muốn thoát ra khỏi Bruhderland sao cho tốn ít sức lực nhất.

Quan trọng: Dữ liệu đảm bảo kết quả không quá ~2500~.

Input: BRUHDERLAND.INP

  • Dòng đầu tiên ghi ~3~ số nguyên dương ~n,m,k~ ~(1 \le n,m \le 1000, 0 \le k \le 5)~.
  • ~n~ dòng sau, dòng thứ ~i~ gồm một xâu kí tự độ dài ~m~ miêu tả hàng thứ ~i~ của ma trận.
  • Dữ liệu đảm bảo ô ~(1,1)~ là kí tự . và luôn tồn tại cách đi từ ~(1,1)~ tới ~(n,m)~ nếu sử dụng thần chú một cách hợp lý.

Output: BRUHDERLAND.OUT

  • In ra một số nguyên dương là số sức lực ít nhất cần tiêu tốn để đến được ô ~(n,m)~.

Scoring:

  • Subtask ~1~ ~(10\%)~: ~ n\times m \le 10^5~, ~k = 0~ và các ô khác ô ~(1,1)~ chỉ gồm kí tự A
  • Subtask ~2~ ~(15\%)~: ~ n\times m \le 10^5~, ~k = 0~ và các ô khác ô ~(1,1)~ không có kí tự B..
  • Subtask ~3~ ~(10\%)~: ~k = 0~ và các ô khác ô ~(1,1)~ không có kí tự B.
  • Subtask ~4~ ~(10\%)~: Các ô khác ô ~(1,1)~ không có kí tự B.
  • Subtask ~5~ ~(15\%)~: ~n \times m \le 10^5~ và ~k = 0~.
  • Subtask ~6~ ~(20\%)~: ~n \times m \le 10^5~.
  • Subtask ~7~ ~(20\%)~: Không có giới hạn gì thêm.

Sample Input 1

4 4 0
.AAA
AAAA
AAAA
AAAA
Sample Output 1
6

Sample Input 2

5 4 0
.AAA
***A
AAAA
A***
AAAA
Sample Output 2
13

Sample Input 3

5 4 0
.AAA
***B
AAAA
A**B
BAAA
Sample Output 3
9

Sample Input 4

5 4 2
.BAA
****
AABA
A***
BABA
Sample Output 4
6

Time limit: 1.0 / Memory limit: 512M

Point: 3

Cho hai số nguyên dương ~n~ và ~k~.

Ta có thể xây dựng một dãy số nguyên dương ~a~ gồm ~n~ phần tử: ~a_1,a_2,...,a_n~ sao cho với mọi ~1 \le i \le n~ thỏa mãn điều kiện ~a_i \in [1,k]~.

Gọi ~g(a)~ là ước chung lớn nhất của dãy số ~a~.

Nhiệm vụ của bạn chính là tính tổng ~g(a)~ của mọi dãy số có thể xây dựng (có ~k^n~ dãy số như vậy).

Vì kết quả có thể rất lớn, hãy in nó ra theo module ~10^9+7~.

Input: nhập vào từ file "SUMGCD.INP"

  • Gồm một dòng chứa hai số nguyên dương ~n,k~ ~(1 \le n \le 10^9, 1 \le k \le 10^6)~.

Output: ghi ra file "SUMGCD.OUT"

  • In ra kết quả theo module ~10^9+7~.

Subtask

  • Subtask ~1~ ~(20\%)~: ~n,k \le 7~
  • Subtask ~2~ ~(20\%)~: ~n \le 10^5, k = 4~
  • Subtask ~3~ ~(25\%)~: ~n \le 10^5, k \le 20~
  • Subtask ~4~ ~(20\%)~: ~k \le 10^5~
  • Subtask ~5~ ~(15\%)~: Không giới hạn gì thêm.

Ví dụ

Sample Input 1
1  5
Sample Output 1
15
Sample Input 2
5 4
Sample Output 2
1060
Sample Input 3
3 2
Sample Output 3
9

Giải thích

Ở ví dụ ~3~ ta có:

  • ~g([1,1,1]) = 1~
  • ~g([1,1,2]) = 1~
  • ~g([1,2,1]) = 1~
  • ~g([1,2,2]) = 1~
  • ~g([2,1,1]) = 1~
  • ~g([2,1,2]) = 1~
  • ~g([2,2,1]) = 1~
  • ~g([2,2,2]) = 2~

Kết quả thu được là ~9~.