Factorize 1

dang7rickroll

Cho số nguyên dương \(n\), khi phân tích \(n\) thành thừa số nguyên tố sẽ có dạng:

\[n = \alpha_1^{\beta_1} \times \alpha_2^{\beta_2} \times ... \times \alpha_s^{\beta_s}\]

Yêu cầu: Tính tích \(Z = \beta_1 \times \beta_2 \times ... \beta_s\)

Dữ liệu:

  • Dòng đầu ghi \(Q\) không quá \(100\)- số câu hỏi.
  • \(Q\) dòng tiếp theo , mỗi dòng ghi số nguyên dương \(n\) không quá \(10^6\)

Kết quả:

  • Ứng với mỗi câu hỏi, in ra đáp án cần tìm.

Sample input

1
5

Sample output

1

Trại hè Tin học

Small

Trong khu vực có \(n\) tỉnh, mỗi tỉnh có một trường chuyên. Giữa một số cặp 2 tỉnh (\(a, b\)) có tuyến xe tốc hành nối \(a\) với \(b\) và ngược lại. Ban Giám hiệu của một số trường chuyên có ký thỏa thuận hợp tác trao đổi kinh nghiệm với nhau. Hiện nay đã có \(m\) thỏa thuận được ký và có \(k\) tuyến tốc hành khác nhau. Giữa 2 cặp tỉnh có không quá một tuyến tốc hành.

Hàng năm một trường sẽ đăng cai tổ chức trại hè. Những trường có quan hệ hợp tác với trường đăng cai sẽ cử giáo viên và học sinh của mình tới dự nếu từ đó có thể tới tỉnh có trường đăng cai, trực tiếp hoặc qua một số tỉnh trung gian bằng xe tốc hành.

Theo thời gian, một số tuyến tốc hành mới được xác lập hòa vào mạng lưới tốc hành hiện có, một số cặp trường có thể ký thỏa thuận hợp tác, các quan hệ hợp tác cũ vẫn được giữ nguyên.

Thông tin về cặp quan hệ mới được đưa dưới dạng thông báo \(F\ a\ b\) – hai trường \(a\) và \(b\) ký thỏa thuận hợp tác. Thông tin về tuyến tốc hành mới được đưa dưới dạng \(T\ a\ b\) – có tuyến nối tỉnh \(a\) với tỉnh \(b\) và ngược lại.

Nếu trường đăng cai ở tỉnh \(v\) thì người ta cần biết trước sẽ có bao nhiêu trường từ các tỉnh bạn có thể tới tham dự và truy vấn sẽ có dạng \(?\ v\).

Với nơi đăng cai cho trước hãy xác định số trường bạn tới dự.

Dữ liệu

  • Dòng đầu tiên chứa 3 số nguyên \(n, m, k\) (\(1 ≤ n ≤ 10^5, 0 ≤ m, k ≤ 10^5\)),
  • Mỗi dòng trong \(m\) dòng tiếp theo chứa 2 số nguyên \(a\) và \(b\) xác định 2 trường \(a\) và \(b\) có quan hệ hợp tác (\(1 ≤ a, b ≤ n, a ≠ b\)), không có 2 dòng nào giống nhau,
  • Mỗi dòng trong \(k\) dòng tiếp theo chứa 2 số nguyên \(a\) và \(b\) xác định giữa 2 tỉnh \(a\) và \(b\) có tuyến tốc hành (\(1 ≤ a, b ≤ n, a ≠ b\)), không có 2 dòng nào giống nhau,
  • Dòng tiếp theo chứa số nguyên \(q\) – số truy vấn cần xử lý (\(1 ≤ q ≤ 10^5\)),
  • Mỗi dòng trong \(q\) dòng sau chứa một truy vấn thuộc một trong các dạng đã nêu.

Kết quả

  • Đưa ra, với mỗi truy vấn dạng \(?\ v\) – đưa ra số trường bạn tới dự.

Sample input

4 2 2
1 2
1 3
1 2
1 4
5
? 1
F 4 1
? 1
T 4 3
? 1

Sample output

1
2
3

Nguồn: Thầy Tùng

Di chuyển (THT TQ 2015)

letangphuquy

Bài 3 năm 2015

Một robot được đặt trên ô bất kì của bảng ô vuông vô hạn. Robot cần tìm đường đến ô P ở vị trí khắc trên bảng để lấy kho báu có rất nhiều đồng tiền vàng. Robot chỉ được đi sang các ô liền kề với ô đang đứng theo chiều dọc hoặc ngang. Mỗi lần robot đi qua \(1\) ô thì sẽ phải trả \(1\) đồng tiền vàng. Trong quá trình điều khiển robot em có thể hỏi các thông tin để đưa robot đến kho báu một cách nhanh nhất. Có \(2\) loại câu hỏi với giá \(5\) đồng tiền vàng như sau:

  • Ô đang đứng ở bên phải, bên trái hay cùng cột với ô P?
  • Ô đang đứng ở bên dưới, bên trên hay cùng hàng với ô P?

Nhiệm vụ của em là viết chương trình DICHUYEN.*, sử dụng các lệnh để điều khiển robot tới ô P sao cho tốn ít chi phí nhất.

Interaction

Để tương tác, ta in mỗi lệnh trên từng dòng:

  • traiphai để hỏi câu hỏi loại 1.
  • trenduoi để hỏi câu hỏi loại 2.
  • dichuyen x với \(x \in \{1,2,3,4\}\) tương ứng với việc điều khiển robot di chuyển lên trên, sang phải, xuống dưới hay sang trái ô đang đứng. Nếu \(x\) không hợp lệ thì vẫn bị trừ 1 đồng tiền vàng và robot đứng yên tại chỗ.

Với câu hỏi loại 1, máy chấm in ra giá trị \(0,1,\) hoặc \(-1\):

  • \(-1\) tương ứng là ô đang đứng ở phía bên trái với ô P
  • \(0\) tương ứng là ô đang đứng ở cùng cột với ô P
  • \(1\) tương ứng là ô đang đứng ở phía bên phải với ô P

Với câu hỏi loại 2, máy chấm in ra giá trị \(0,1,\) hoặc \(-1\):

  • \(-1\) tương ứng là ô đang đứng ở phía bên dưới với ô P
  • \(0\) tương ứng là ô đang đứng ở cùng hàng với ô P
  • \(1\) tương ứng là ô đang đứng ở phía bên trên với ô P

Chương trình của em không được thực hiện các lệnh trên quá \(10^6\) lần. Nếu vượt quá, chương trình sẽ bị ngắt và em được 0 điểm với test đó.

Chương trình của em sẽ tự động ngắt khi điều khiển robot tới đúng ô P.

Trong trường hợp lệnh được đưa ra không đúng theo quy chuẩn, chương trình sẽ bị ngắt ngay lập tức.

Scoring

Số điểm của test sẽ giảm dần khi chi phí em sử dụng tăng lên. Cụ thể, nếu giám khảo chỉ sử dụng chi phí là \(J\) , em sử dụng chi phí là \(C\) , thì số điểm em đạt được là \(min(1,\frac{J}{C})\)

Note

Với vị trí của robot và ô P trong mọi test thì chiến thuật của giám khảo luôn đưa được robot tới ô P trong \(10^6\) lệnh.

Tổng truy vấn lớn nhất

jumptozero

Cho một mảng gồm \(n\) phần tử và \(q\) truy vấn, mỗi truy vấn được định nghĩa bởi một cặp số nguyên \(l_i,r_i(1\le l_i\le r_i\le n)\) và nhiệm vụ của ta là ứng với mỗi truy vấn, ta cần tìm tổng các phần tử của mảng từ \(l_i\) đến \(r_i\). (bao gồm cả \(l_i,r_i\))

Nhưng có một điều đặc biệt là trước khi thực hiện \(q\) truy vấn này, ta cần phải sắp xếp lại mảng theo thứ tự nào đó sao cho tổng tất cả các kết quả của \(q\) truy vấn nhận được là lớn nhất có thể, và tổng kết quả lớn nhất đó chính là kết quả cần tìm.

Input:

  • Dòng thứ nhất chứa hai số nguyên \(n,q(1\le n\le 200000,1\le q\le 200000)\)

  • \(q\) dòng tiếp theo, mỗi dòng chứa cặp số nguyên \(l_i,r_i(1\le l_i\le r_i\le n)\)

Output:

  • In ra giá trị cần tìm

Ví dụ:

Input:

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

Output:

29

Giải thích:

Đầu tiên ta sắp xếp mảng đã cho lại thành: \(3,5,4,1,2\). Khi đó: Ta có tổng lớn nhất cần tìm là: \(8+12+9=29\)

Nguồn: Codeforces

Fibo đầu tiên

admin

"Một đôi thỏ (gồm một thỏ đực và một thỏ cái) cứ mỗi tháng đẻ được một đôi thỏ con (cũng gồm một thỏ đực và thỏ cái); một đôi thỏ con, khi tròn 2 tháng tuổi, sau mỗi tháng đẻ ra một đôi thỏ con, và quá trình sinh nở cứ thế tiếp diễn. Hỏi sau n tháng có bao nhiêu đôi thỏ, nếu đầu năm (tháng Giêng) có một đôi thỏ sơ sinh

enter image description here

Trong hình vẽ trên, ta quy ước:

  • Cặp thỏ nâu là cặp thỏ có độ tuổi 1 tháng.
  • Cặp thỏ được đánh dấu (màu đỏ và màu xanh) là cặp thỏ có khả năng sinh sản.

Nhìn vào hình vẽ trên ta nhận thấy:

  • Tháng Giêng và tháng Hai: Chỉ có 1 đôi thỏ.
  • Tháng Ba: đôi thỏ này sẽ đẻ ra một đôi thỏ con, do đó trong tháng này có 2 đôi thỏ.
  • Tháng Tư: chỉ có đôi thỏ ban đầu sinh con nên đến thời điểm này có 3 đôi thỏ.
  • Tháng Năm: có hai đôi thỏ (đôi thỏ đầu và đôi thỏ được sinh ra ở tháng Ba) cùng sinh con nên ở tháng này có 2 + 3 = 5 đôi thỏ.
  • Tháng Sáu: có ba đôi thỏ (2 đôi thỏ đầu và đôi thỏ được sinh ra ở tháng Tư) cùng sinh con ở thời điểm này nên đến đây có 3 + 5 = 8 đôi thỏ.

Khái quát, nếu \(n\) là số tự nhiên khác 0, gọi \(f(n)\) là số đôi thỏ có ở tháng thứ \(n\), ta có:

  • Với \(n = 1\) ta được \(f(1) = 1.\)
  • Với \(n = 2\) ta được \(f(2) = 1.\)
  • Với \(n = 3\) ta được \(f(3) = 2.\)
  • Do đó với \(n > 2\) ta được: \(f(n) = f(n-1) + f(n-2)\).

Nguồn: wikipedia

Dãy số trên gọi là dãy số \(Fibonacci\) và được định nghĩa như sau:

  • \(F_1 = F_2 = 1;\)
  • \(…\)
  • \(F_n = F_{n-2} + F_{n-1}\)

Hãy viết chương trình in \(n\) số \(Fibonacci\) đầu tiên:

Dữ liệu vào:

  • Chứa duy nhất số \(n\) (\(n≤90\))

Kết quả:

  • Chỉ một dòng ghi \(n\) số Fibonaci đầu tiên

Ví dụ:

Input

10

Output

1 1 2 3 5 8 13 21 34 55

Chia dãy (HSG10v2-2022)

Small

Bài 3: Chia dãy (7 điểm)


Cánh diều - CUUNAN - Cứu nạn (T117)

DKingQA, Flower_On_Stone

Một tàu đánh cá có ngư dân bị tai nạn cần cấp cứu đã gọi điện về cơ sở y tế ở đào gần nhất cách đó \(d\) (hải lí). Để người bị tai nạn được sơ cứu sớm hơn, tàu đánh cá đổi hướng, đi thẳng về phía đảo với vận tốc \(v1\) (hải lí/ giờ), đồng thời từ đảo, người ta cũng cho một tàu cứu nạn có thiết bị y tế sơ cứu đi theo đường đó tới hướng tàu cá với vận tốc \(v2\) (hải lí/ giờ). Em hãy viết chương trình xác định sau bao lâu hai tàu gặp nhau, khi biết các dữ liệu \(d, v1, v2\)?

Input:

Gồm 3 dòng, mỗi dòng ghi một số thực lần lượt là \(d, v1, v2\); các giá trị số dương không quá \(10^6\).

Output:

In ra một số là quãng thời gian để hai tàu gặp nhau. Lấy 2 số phần thập phân.

Ví dụ:

Sample Input

3
4
5

Sample Output

0.33

Tập lớn nhất

Small

Cho dãy số nguyên dương \(A = (a_1, a_2, . . ., a_n)\). Hãy tìm tập nhiều phần tử nhất có cùng ít nhất một ước số chung lớn lớn hơn 1 và đưa ra số phần tử trong tập tìm được.

Ví dụ, với \(A = (6, 15, 10, 42)\), tập {\(6, 10, 42\)} chứa các số cùng chia hết cho 2 và là tập nhiều phần tử nhất có cùng ít nhất một ước số chung lớn lớn hơn 1. Số lượng các phần tử trong tập là 3.

Dữ liệu

  • Dòng đầu tiên chứa số nguyên \(n\ (1 ≤ n ≤ 1000)\),
  • Dòng thứ 2 chứa \(n\) số nguyên \(a_1, a_2, . . ., a_n (2 ≤ a_i ≤ 10^{18}, i = 1 ÷ n)\).

Kết quả

  • Đưa ra một số nguyên – số lượng phần tử của tập tìm được.

Sample input

4
6 15 10 42

Sample output

3

Nguồn: Thầy Tùng

Giả thuyết Goldbach

Small

Giả thuyết Goldbach do nhà toán học người Đức Christian Goldbach (1690-1764) nêu ra vào năm 1742 trong một lá thư gửi tới Leonhard Euler, là một trong những bài toán lâu đời và nổi tiếng còn chưa giải được trong lý thuyết số nói riêng và toán học nói chung. Giả thuyết phỏng đoán rằng: Mọi số tự nhiên chẵn lớn hơn 2 có thể biểu diễn bằng tổng của hai số nguyên tố. Trong bài toán này bạn được cho một số tự nhiên chẵn \(𝑛\), bạn hãy đếm số lượng cặp số nguyên tố \(𝑎, 𝑏\ (𝑎 ≤ 𝑏)\) mà \(𝑎 + 𝑏 = 𝑛\).

Dữ liệu • Gồm một dòng chứa một số tự nhiên chẵn \(𝑛\).

Kết quả • Gồm dòng chứa một số là số lượng cặp số nguyên tố \(𝑎, 𝑏\) mà \(𝑎 ≤ 𝑏\) và \(𝑎 + 𝑏 =n\)

Sample input

10

Sample output

2

Ràng buộc

  • Có 50% test ứng với 50% số điểm có \(𝑛 ≤ 10^3\);
  • Có 50% test còn lại ứng với 50% số điểm có \(𝑛 ≤ 10^6\)

Coin Toss

Small

Nguồn: ICPC North 2021

divisor01

PhanDinhKhoi

Cho Tập hợp số tự nhiên không vượt quá \(n\) (là số chẵn và cho trước)

\(S = \{1, 2, 3, 4\dots\, n-1, n\}\)

Hỏi phải lấy ít nhất bao nhiêu số từ tập hợp \(S\) để có \(2\) số sao cho tổng của chúng chia hết cho \((n + 1)\).

Rõ hơn, tìm \(x\) nhỏ nhất sao cho mọi tập con \(x\) phần tử của \(S\) tồn tại 2 số khác nhau có tổng chia hết cho \((n + 1)\).

Yêu cầu: Nhập \(n(2 \leq n \leq 10^9)\), in ra \(x\).

Input

4

Output

3

GIẢI THÍCH:

Các tập con 3 phần tử của \(S\) là:

\({1, 2, 3}\) -> có \((2 + 3)\) chia hết cho 5

\({1, 2, 4}\) -> có \((1 + 4)\) chia hết cho 5

\({1, 3, 4}\) -> có \((1 + 4)\) chia hết cho 5

\({2, 3, 4}\) -> có \((2 + 3)\) chia hết cho 5

SGAME6

vinhntndu

Sau một chuỗi thua cược vì tụt rank liên tục, SPyofgame đang mắc một khoản nợ. Nhưng vì mải dùng tiền mua quà cho bạn gái nên giờ SPyofgame đã hết tiền để trả nợ. Vì thế, SPyofgame phải chơi một trò chơi do chủ nợ đưa ra. Nếu chiến thắng, số tiền nợ sẽ được giảm một nửa, còn nếu không, SPyofgame sẽ phải nhường bạn gái cho chủ nợ. Trò chơi được mô tả như sau:

Người chủ nợ sẽ đặt N số nguyên dương vào một vòng tròn và thực hiện các yêu cầu sau:

  • Người chơi đầu sẽ chọn một số nguyên dương bất kỳ
  • Người chơi thứ hai lấy một trong hai số liền kề với số mà người chơi thứ nhất đã lấy.
  • Người chơi tiếp theo sẽ lấy một số liền kề với bất kỳ số đã lấy trước đây. Trò chơi tiếp diễn cho đến khi hai người lấy hết được toàn bộ số trong vòng tròn. Người thắng cuộc là người lấy được nhiều số lẻ hơn (số chia 2 dư 1).

Biết rằng SPyofgame sẽ luôn chơi tối ưu, nhưng anh ta không biết thực lực cụ thể của chủ nợ. Vì là người có quyền, chủ nợ sẽ luôn là người chơi trước. Chủ nợ muốn nhờ bạn tính xem có bao nhiêu cách chọn số đầu tiên để người chiến thắng là chủ nợ (đến đây chắc ai cũng biết chủ nợ là ai rồi)

INPUT:

Dòng đầu tiên chứa số nguyên dương \(N (1 \leq N \leq 100)\), là số lượng số được đặt trên vòng tròn. Dòng thứ hai gồm \(N\) số nguyên dương, số thứ \(i\) có giá trị \(a[i]\) là giá trị của vị trí thứ \(i\) trên hình tròn. \((1 \leq a[i] \leq 1000)\)

OUTPUT

Một dòng duy nhất là kết quả của bài toán.

Ví Dụ:

INPUT

3
3 1 5

OUTPUT

3

Giải thích:

Ở ví dụ trên, dù chọn số nào đầu tiên thì chủ nợ luôn có được 2 số lẻ sau cùng, còn SPyofgame chỉ luôn có được 1 số lẻ.

Số chia hết cho 30

corona

Cho n số chữ số (từ 0 đến 9). Hãy tạo ra 1 số chia hết cho 30 từ những chữ số này, mỗi chữ số chỉ được chọn 1 lần. Chữ số được tạo ra không được có số 0 dư thừa ở đầu.

Yêu câu: Hãy tìm số thỏa mãn yêu cầu trên lớn nhất có thể.

Dữ liệu vào

  • Dòng đầu tiền gồm \(n\)
  • Dóng thứ 2 gồm n chữ số.

Kết quả

  • Gồm 1 dòng duy nhất là kết quả bài toán, nếu không có kết quả, in ra -1.

Sample Input 1

2
3 0

Sample Output 1

30

Sample Input 2

2
3 1

Sample Output 2

-1

Giới hạn

  • \(n ≤ 10^5\)

Tạo palindrome

cuom1999

Cho một xâu \(s\). Cần thêm ít nhất bao nhiêu ký tự vào cuối xâu \(s\) để tạo thành một xâu đối xứng? In ra xâu đối xứng đó.

Input

  • Dòng đầu tiên chứa một số nguyên dương \(t\), số truy vấn bạn phải trả lời \((1\leq t \leq 100)\)
  • \(t\) dòng tiếp theo, mỗi dòng chứa một xâu \(s\)
  • Tổng độ dài các xâu \(s\) không vượt quá \(5 * 10^5\).

Output

Với mỗi truy vấn, in ra một dòng là xâu đối xứng tạo thành.

Ví dụ

Input

4
aaaa
abba
amanaplanacanal
xyz

Output

aaaa
abba
amanaplanacanalpanama
xyzyx

Thần bài người Italy 2

corona

Một thần bài người Italy đang chơi một trò chơi với những lá bài. Bộ bài gồm n lá bài được đánh số từ \(1\) đến \(n\). Anh ấy bốc \(k\) lá bài bất kì từ bộ bài và trải dài ra sàn nha. Để phục vụ cho thiết kế ảo thuật, anh ấy muốn thay \(1\) lá bài nhỏ nhất trên sàn nhà bằng \(1\) lá bài lớn nhất trong những lá bài còn lại của bộ bài.

Vị thần bài này muốn thực hiện phép thay đổi này \(q\) lần. Hãy tính xem sau khi thay \(q\) lần, tổng lá bài trên sàn là bao nhiêu.

Dữ liệu vào

  • Dòng đầu tiền gồm \(n\), \(k\) và \(q (k < n)\).
  • Dòng tiếp theo gồm \(k\) số nguyên dương khác nhau \(A_i (1 ≤ A_i ≤ n)\).

Kết quả

  • Gồm 1 dòng duy nhất là kết quả bài toán.

Sample Input 1

5 2 3
1 3

Sample Output 1

8

Giới hạn

  • 30% test có \(2 ≤ n,q ≤ 10^3\)
  • 30% test có \(2 ≤ n,q ≤ 2*10^5\)
  • 40% test có \(2 ≤ n ≤ 2*10^2, q ≤ 10^9\)

minict03

corona

Gọi phép dịch trái của một string \(t_1t_2t_3...t_{n-1}t_n\) là string \(t_2t_3...t_{n-1}t_nt_1\)

Gọi phép dịch phải của một string \(t_1t_2t_3...t_{n-1}t_n\) là string \(t_nt_1t_2t_3...t_{n-1}\)

Ví dụ: s = "4579" dịch trái là "5794", dịch phải là "9457"

Một string được gọi là good nếu phép dịch trái và phép dịch phải của nó bằng nhau.

Bạn được cho một string s chỉ bao gồm các kí tự từ 0 đến 9.

Hãy tính toán số lượng kí tự ít nhất cần xóa để làm cho string s trở thành good.

Input

  • Dòng đầu tiên là số nguyên T (T <= 10) - là số lượng bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm một string s (\(s.size() <= 2*10^5\)).

Output

  • Mỗi bộ dữ liệu in ra một số nguyên là số lượng ít nhất kí tự cần xóa để làm cho string s trở thành good.

Input

3
95831
100120013
252525252525

Output

3
5
0

Giải thích

95831 xoá 3 kí tự còn 95 là good string

100120013 xoá 5 kí tự còn 0000 là good string

Test 3 đã là good string nên không cần xoá

[Assembly_Training] Input same Output

jumptozero

Input:

  • Một dòng duy nhất chứa xâu \(s\) chỉ gồm các kí tự la tinh thường, và độ dài xâu \(s\) không quá \(100\)

Output:

  • In ra xâu \(s\) đã cho

Ví dụ:

Input:

abc

Output:

abc

arr01

corona

Cho một dãy gồm n số nguyên dương \(A_1, A_2,…, A_n\). (\(N ≤ 10^5, A_i ≤ 10^9\)).

Hãy in số lớn nhất cùng chỉ số của nó, nếu có nhiều số lớn nhất thì in ra chỉ số của số đầu tiên gặp.

Input:

  • Dòng đầu chứa số n, dòng thứ hai chứa n số nguyên dương \(A_1, A_2,…, A_n\).

Output:

  • Dòng đầu chứa số có giá trị lớn nhất, dòng thứ hai chỉ số của nó.

Input

6
91 451 43 3 451 54

Output

451
2

Bao lồi

hhoangcpascal

Trên mặt phẳng với hệ trục tọa độ Descartes vuông góc Οxy cho \(N\) điểm đánh số từ \(1\) tới \(N\), có thể có những điểm trùng nhau nhưng có ít nhất \(3\) điểm không thẳng hàng. Điểm thứ \(i\) có tọa độ \((x_i, y_i)\). Hãy tìm một đa giác lồi với diện tích nhỏ nhất mà miền giới hạn bởi đa giác (tính cả đường biên) chứa tất cả \(N\) điểm đã cho. (Đa giác lồi được định nghĩa là miền giới hạn bởi một đường gấp khúc khép kín không tự cắt có các đỉnh phân biệt và các góc nhỏ hơn \(180\) độ).

Dữ liệu vào:

  • Dòng đầu tiên chứa số nguyên dương \(N\) \((3 \leq N \leq 10^5)\).
  • \(N\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(x_i, y_i\) có giá trị tuyệt đối không quá \(10^9\).

Kết quả:

  • Dòng thứ nhất ghi số đỉnh (\(M\)) của đa giác tìm được.
  • Dòng thứ hai ghi diện tích đa giác tìm được với đúng \(1\) chữ số sau dấu chấm thập phân.
  • \(M\) dòng tiếp theo, dòng thứ \(j\) ghi tọa độ đỉnh thứ \(j\) của đa giác tìm được theo thứ tự sau: Đỉnh trái nhất trong số những đỉnh thấp nhất của bao lồi được đánh số \(1\), các đỉnh còn lại được đánh số theo thứ tự tạo thành đa giác liệt kê theo chiều ngược với chiều kim đồng hồ.

Ví dụ:

Input:

11
-5 0
-4 2
-3 -2
-1 4
-1 -4
0 0
1 -2
1 -4
2 -3
3 -4
5 -2

Output:

6
46.0
-1 -4
3 -4
5 -2
-1 4
-4 2
-5 0

enter image description here

Nguồn đề: Thầy Hoàng

Cánh Diều - BCNN - Hàm tìm bội số chung nhỏ nhất của hai số nguyên

DKingQA, Flower_On_Stone

Viết hàm \(BCNN\) nhận vào hai số nguyên, trả về giá trị là bội số chung nhỏ nhất của hai số đó. Sử dụng hàm đã viết để tìm bội số chung nhỏ nhất của hai số nguyên được nhập vào.

Input

Hai số nguyên \(a, b\) có giá trị trong \([-10^3, 10^3]\).

Output

Một số nguyên là bội số chung nhỏ nhất cần tìm.

Ví dụ:

Sample Input

8
12

Sample Output

Boi chung nho nhat cua 8 va 12 la 24