Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

staffagent

Hàng chờ nhận giấy

100 điểm

Có \(N\) bạn nhỏ xếp hàng nhận giấy màu, các bạn được đánh số từ \(1\) đến \(N\) theo thứ tự đứng ban đầu. Bạn thứ \(i\) cần đúng \(A_i\) mảnh giấy. Mỗi lượt, người đứng đầu hàng nhận đúng một mảnh; nếu chưa đủ số mảnh cần thiết thì bạn đó quay về cuối hàng, nếu đủ thì rời khỏi hàng. Bạn nào cần \(0\) mảnh thì không xếp hàng.

Cô giáo phát tổng cộng \(K\) mảnh giấy (hoặc phát đến khi hết người cần giấy). Hãy cho biết tình trạng sau khi phát:

  • Nếu tất cả mọi người đã đủ giấy và cô phát chưa hết \(K\) mảnh, in ra số mảnh còn dư (là \(K - \sum A_i\)).
  • Nếu tất cả đều đủ giấy và cô vừa hết đúng \(K\) mảnh, in ra OK.
  • Ngược lại, in ra chỉ số của những bạn còn trong hàng, từ đầu hàng đến cuối hàng, cách nhau một dấu cách.

Input

  • Dòng đầu tiên chứa hai số nguyên \(N\) và \(K\).
  • Dòng thứ hai chứa \(N\) số nguyên \(A_1, \dots, A_N\).

Output

Theo mô tả ở trên.

Constraints

  • \(1 \le N \le 100\,000\).
  • \(0 \le A_i \le 10^9\).
  • \(0 \le K \le 10^9\).

Sample Input

4 7
2 5 1 3

Sample Output

2 4

Explanation

Vòng đầu cả 4 bạn nhận 1 mảnh (4 mảnh), bạn 3 đủ nên rời hàng. Vòng hai, bạn 1, 2, 4 nhận thêm (3 mảnh), bạn 1 đủ nên rời hàng. Đã phát \(7\) mảnh, hàng còn bạn 2 rồi bạn 4.

root

Đổi chỗ hai số

100 điểm

Cho hai số nguyên \(a\) và \(b\). Hãy đổi chỗ giá trị của chúng rồi in ra kết quả.

Input

Một dòng chứa hai số nguyên \(a\) và \(b\).

Output

In ra hai số sau khi đã hoán đổi, cách nhau bởi dấu cách.

Example

Test 1

Input
3 4
Output
4 3

root

BFS cơ bản

100 điểm

Cho một đồ thị vô hướng có \(N\) đỉnh và \(M\) cạnh. Sử dụng thuật toán BFS để tìm chiều dài đường đi ngắn nhất (tính bằng số cạnh) giữa hai đỉnh \(S\) (đỉnh bắt đầu) và \(E\) (đỉnh kết thúc).

Input

  • Dòng đầu tiên là hai số nguyên dương \(N\), \(M\), \(S\), \(E\) (\(1 \leq N \leq 10^5, 1 \leq M \leq 10^5\), \(1 \leq S, E \leq N\)).
  • \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) mô tả một cạnh nối giữa đỉnh \(u\) và đỉnh \(v\).

Output

Một dòng duy nhất chứa chiều dài đường đi ngắn nhất từ \(S\) đến \(E\). Nếu không có đường đi, in ra -1.

Example

Test 1

Input
5 5 1 5
1 2
1 3
2 4
2 5
3 4
Output
2

root

Biểu thức (Tham lam, 2*)

100 điểm

Một dãy gồm \(n\) số nguyên \(a_{1}, a_{2},..., a_{n}\) được viết thành một hàng ngang, giữa hai số liên tiếp có một khoảng trắng, như vậy có tất cả \((n-1)\) khoảng trắng. Người ta muốn đặt \(k\) dấu cộng và \((n-1-k)\) dấu trừ vào \((n-1)\) khoảng trắng đó để nhận được một biểu thức có giá trị lớn nhất.

Ví dụ, với dãy gồm \(5\) số nguyên \(28, 9, 5, 1, 69\) và \(k = 2\) thì cách đặt \(28+9-5-1+69\) là biểu thức có giá trị lớn nhất.

Yêu cầu: Cho dãy gồm \(n\) số nguyên \(a_{1}, a_{2},..., a_{n}\) và số nguyên dương \(k\), hãy tìm cách đặt \(k\) dấu cộng và \((n-1-k)\) dấu trừ vào \((n-1)\) khoảng trắng để nhận được một biểu thức có giá trị lớn nhất.

Input

Dòng đầu chứa hai số nguyên dương \(n, k (k < n)\)

Dòng thứ hai chứa n số nguyên \(a_{1}, a_{2},..., a_{n}\) \((|a_{i}| ≤ 10^6)\)

Output

Một số nguyên là giá trị của biểu thức đạt được.

Example

Test 1

Input
5 2
28 9 5 1 69
Output
100

Scoring

\(60\%\) số test có \(n \leq 20\).

\(40\%\) số test còn lại có \(n \leq 10^5\).

Xem thêm