AlgoSec Battle
Cộng trừ
Nộp bàiPoint: 100
Bạn được cho 3 số nguyên ~a, b ,c~. Hãy xác định xem ~c~ là tổng hay hiệu của ~a~ và ~b~
Input:
- Là 3 số nguyên ~{a,b,c} (1 \leq {|a,b,c|} \leq 10^{18} )~
Output:
- Hãy in ra + nếu ~c~ là tổng của ~a~ và ~b~, in ra - nếu ~c~ là hiệu của ~a~ và ~b~ ( Dữ liệu đầu vào đảm bảo có đầu ra)
Sample Input 1
5 6 -1
Sample Output 1
-
Sample Input 2
5 6 11
Sample Output 2
+
Chia độ khó
Độ khó | Điều kiện |
---|---|
Dễ (40% tổng số điểm) | ~1 \leq {\lvert a,b,c \rvert} \leq 10^{6}~ |
Trung bình (30% tổng số điểm) | ~1 \leq {\lvert a,b,c \rvert} \leq 10^{9}~ |
Khó (30% tổng số điểm) | ~1 \leq {\lvert a,b,c \rvert} \leq 10^{18}~ |
15GG
Nộp bàiPoint: 100
Trong game LOL, Yasuo đang phải đi kèo với Renekton, 1 con tướng kèo trên rõ ràng với em nhà Y. Trước mặt em nhà Y là một đàn lính có ~n~ con, anh ta phải diệt chúng để lấy tiền mua đồ đánh lại con cá sấu Renekton này, con lính thứ ~i~ cho ~a[i]~ tiền. Tại lúc này, đối với sức mạnh con cá sấu cần ít nhất k tiền mua đồ để có thể ăn lại. Bạn hãy giúp Yasuo ăn ít con lính nhất có thể để có tiền mua đồ, nếu không đủ tiền thì hãy thông báo ~15GG~
Input:
Dòng đầu tiên của input chứa số nguyên ~n~ (~1 \leq n \leq 10^6~) và số nguyên ~k~ (~1 \leq k \leq 10^{12}~)
Dòng tiếp theo chứa n số nguyên ~a[i]~ ~(1 \leq i \leq n , 1\leq a[i] \leq 10^6)~
Output:
- Hãy in ra số lính cần ít ăn nhất có thể, nếu không thể đánh bại cá sấu hãy in ra 15GG
Sample Input 1
5 100
5 10 90 100 1
Sample Output 1
1
Chia độ khó
Độ khó | Điều kiện |
---|---|
Dễ (40% tổng số điểm) | ~1 \leq n \leq 100~ và ~1 \leq k \leq 10^{6}~ |
Trung bình (30% tổng số điểm) | ~1 \leq n \leq 1000~ và ~1 \leq k \leq 10^{9}~ |
Khó (30% tổng số điểm) | ~1 \leq n \leq 10^6~ và ~1 \leq k \leq 10^{12}~ |
Nhảy xa
Nộp bàiPoint: 100
Thể dục thể thao, nâng cao sức khỏe. FPT Software Academy đang tổ chức cuộc thi nhảy xa để tìm ra nhà vô địch cho mùa giải mới. Tuy nhiên, luật chơi không chỉ yêu cầu sức khỏe mà còn yêu cầu một cái đầu có tư duy thuật toán thật là tốt. Là một thành viên của phòng marketing nhưng vẫn muốn giành chiến thắng trong giải đấu này, chị Thơ Nguyễn nhờ Đậu - Một thành viên mẫn cán của CLB TAS nghĩ lời giải cho cuộc thi.
Suy nghĩ mãi mà Đậu vẫn chưa tìm ra được chiến lược tối ưu. Các bạn cùng nghĩ với Đậu để giải quyết bài toán học búa này của nhà FSoft Academy nhé.
Luật chơi như sau:
Có ~N~ cột mốc, được đánh số từ 1 đến ~N~. Với mỗi chỉ số ~i~, độ cao của cột mốc thứ ~i~ là ~h_i~.
Đậu xuất phát từ cột mốc thứ nhất. Biết rằng, nếu Đậu đang đứng ở cột mốc thứ ~i~, cậu ta có thể nhảy đến được các cột mốc thứ ~i + 1, i + 2, ..., i + K~. Mỗi lần nhảy, Đậu sẽ tốn số năng lượng là ~|h_i - h_j|~, với ~j~ là cột mốc mà cậu ta muốn nhảy đến.
Các bạn hãy giúp Đậu tìm ra số năng lượng tiêu tốn tối thiểu để nhảy từ cột mốc đầu tiên đến cột mốc thứ ~N~.
Input
- Dòng đầu tiên là 2 số nguyên dương ~N~ và ~K~, lần lượt là số cột mốc và giới hạn nhảy của Đậu. ~(2 \leq N \leq 10^6, 1 \leq K \leq 100)~
- Dòng thứ hai gồm ~N~ số nguyên ~h_i~, là độ cao của cột mốc thứ ~i~. ~(1 \leq i \leq N, 1 \leq h_i \leq 10^{8})~
Output
- Gồm một số nguyên, là năng lượng ít nhất để nhảy từ cột mốc đầu tiên đến cột mốc thứ ~N~.
Chia độ khó
Độ khó | Điều kiện |
---|---|
Dễ (50% tổng số điểm) | ~1 \leq N \leq 10^5, 1 \leq h_i \leq 10^4~ |
Trung bình (50% tổng số điểm) | ~1 \leq N \leq 10^6, 1 \leq h_i \leq 10^8~ |
Sample input 1
2 1
10 10
Sample output 1
0
Sample input 2
3 1
10 30 10
Sample output 2
40
Sample input 3
5 3
10 30 40 50 20
Sample output 3
30
Notes
- Ở ví dụ thứ nhất, bước nhảy tối ưu là ~1 \to 2~. Năng lượng tiêu tốn sẽ là ~|10 - 10| = 0~
- Ở ví dụ thứ hai, bước nhảy tối ưu là ~1 \to 2 \to 3~. Năng lượng tiêu tốn sẽ là ~|10 - 30| + |30 - 10| = 40~
- Ở ví dụ thứ ba, bước nhảy tối ưu là ~1 \to 2 \to 5~. Năng lượng tiêu tốn sẽ là ~|10 - 30| + |30 - 20| = 30~
Tính tổng đoạn con
Nộp bàiPoint: 100
Bạn được cho một mảng gồm có n số nguyên dương ~a_1, a_2, a_3,…, a_n~ và ~Q~ truy vấn. Có 2 loại truy vấn như sau:
Loại truy vấn thứ nhất: Thay thế giá trị thứ ~x~ trong mảng thành ~val~, tức là ~a[x]=val~
Loại truy vấn thứ hai: In ra tổng trong đoạn từ ~a[l]~ tới ~a[r]~ ~( 1<=l<=r<=n)~
Input:
Dòng đầu tiên của input chứa số nguyên ~n (1 \leq n \leq 10^5)~ và số nguyên ~q(1 \leq q \leq 10^5)~
Dòng tiếp theo chứa n số nguyên ~a[i] (1 \leq i \leq n , 1\leq a[i] \leq 10^6)~
Các dòng tiếp theo là các Q truy vấn theo 2 dạng:
1 x val
: tương ứng với loại truy vấn thứ nhất2 l r
: tương ứng với loại truy vấn thứ hai
Output:
- Hãy in ra kết quả khi thực hiện các truy vấn loại 2, mỗi kết quả trên một dòng
Sample Input 1
5 4
5 10 90 100 1
2 1 3
1 2 2
2 1 4
2 3 5
Sample Output 1
105
197
191
Chia độ khó
Độ khó | Điều kiện |
---|---|
Dễ (40% tổng số điểm) | ~1 \leq n \leq 100~ và ~1 \leq q \leq 100~ |
Trung bình (30% tổng số điểm) | ~1 \leq n \leq 1000~ và ~1 \leq q \leq 1000~ |
Khó (30% tổng số điểm) | ~1 \leq n \leq 10^5~ và ~1 \leq q \leq 10^5~ |
Tính biểu thức
Nộp bàiPoint: 100
FPT đang có một cuộc thi xem ai có khả năng tính biểu thức nhanh hơn, mọi người tham gia đều được phép sử dụng các công cụ để tính nhanh nhất có thể. Hiếu là người mới trong lĩnh vực lập trình, anh ấy muốn nhờ bạn để code ra một bài tính giá trị biểu thức đã nhập vào. Bạn hãy giúp Hiếu code bài này nhé, biểu thức này chứa các dấu ngoặc ( ) và dấu +, -, *. Dữ liệu đầu ra đảm bảo kết quả không quá 10^18 và là số nguyên dương.
Input:
- Một dòng duy nhất chứa biểu thức
Output:
- Hãy in ra kết quả khi thực hiện biểu thức đã cho
Lưu ý
Bài này không cho phép sử dụng hàm eval của các ngôn ngữ. Thí sinh sử dụng hàm này sẽ bị tính 0 điểm.
Sample Input 1
5*100
Sample Output 1
500
Sample Input 2
5*100+30
Sample Output 2
530
Sample Input 3
2*(2+1)
Sample Output 3
6