CSES - Planets and Kingdoms | Hành tinh và vương quốc

zipdang04 , Flower_On_Stone , kitsune

Một trò chơi có \(n\) hành tinh, được kết nối bởi \(m\) cổng dịch chuyển. Hai hành tinh \(a\)\(b\) thuộc cùng một vương quốc chỉ khi có một lộ trình cả từ \(a\) đến \(b\) và từ \(b\) đến \(a\). Nhiệm vụ của bạn là xác định vương quốc cho mỗi hành tinh.

Input

  • Dòng đầu vào đầu tiên có hai số nguyên \(n\)\(m\) \((1 \leq n \leq 10^{5}, 1 \leq m \leq 2 \times 10^{5})\) - số lượng hành tinh và cổng dịch chuyển. Các hành tinh được đánh số \(1, 2, \ldots, n\).
  • Sau này, có \(m\) dòng mô tả các cổng dịch chuyển. Mỗi dòng có hai số nguyên \(a\)\(b\) \((1 \leq a, b \leq n)\) - bạn có thể đi từ hành tinh \(a\) đến hành tinh \(b\) thông qua một cổng dịch chuyển.

Output

  • Đầu tiên in một số nguyên \(k\): số lượng vương quốc. Sau đó, in chỉ số vương quốc từ \(1\) đến \(k\) cho mỗi hành tinh. Bạn có thể in bất kỳ giải pháp hợp lệ nào.

Example

Test 1

Input
5 6
1 2
2 3
3 1
3 4
4 5
5 4
Output
2
1 1 1 2 2
...Xem thêm

CSES - Sliding Cost | Chi phí đoạn tịnh tiến

Flower_On_Stone , kitsune , Elektrikar

Bạn được cho một mảng gồm \(n\) số nguyên. Nhiệm vụ của bạn là: với mỗi đoạn con gồm \(k\) phần tử liêp tiếp, từ trái sang phải, tính tổng chi phí tối thiểu để tất cả các phần tử bằng nhau.

Bạn có thể tăng hoặc giảm từng phần tử với chi phí \(x\), trong đó \(x\) là chênh lệch giữa giá trị mới và giá trị ban đầu. Tổng chi phí của đoạn con là tổng của các chi phí tăng hoặc giảm mỗi phần tử trong đó.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\)\(k\): số lượng phần tử của mảng và kích thước của đoạn con.
  • Dòng tiếp theo chứa \(n\) số nguyên \(x_1,x_2,\ldots,x_n\): các phần tử của mảng.

Output

  • In ra \(n-k+1\) số: các chi phí.

Constraints

  • \(1 \le k \le n \le 2 \cdot 10^5\)
  • \(1 \le x_i \le 10^9\)

Example

Sample input

8 3
2 4 3 5 8 1 2 1

Sample output
2 2 5 7 7 1

...Xem thêm

Số đặc biệt #1

Số đặc biệt là một số chia hết cho tổng các chữ số của nó. Nhập vào 1 số nguyên \(n\). Kiểm tra xem \(n\) có phải số đặc biệt không?

Input

  • Gồm một dòng duy nhất chứa 1 số nguyên \(n\) \((0 \leq n \leq 10^9)\).

Output

  • Gồm một dòng duy nhất chứa xâu kí tự "YES" nếu \(n\) là số đặc biệt, và ngược lại "NO" nếu \(n\) không là số đặc biệt.

Example

Test 1
Input
12
Output
YES
Test 2
Input
13
Output
NO
...Xem thêm

#01 - Vị trí ban đầu

zipdang04

Cho mảng \(A\) gồm \(n\) phần tử phân biệt. Gọi \(B\) là mảng \(A\) sau khi sắp xếp không giảm.
Gọi \(C_i\) là vị trí trên mảng \(A\) sao cho \(B_i = A_{C_i}\).

Hãy tính mảng \(C\), hay nói cách khác là hãy cho biết vị trí ban đầu trên mảng \(A\) của mỗi phần tử trên \(B\).

Input

  • Dòng đầu tiên in ra số \(n\) \((n \leq 100000)\).
  • Dòng thứ hai in ra \(n\) số nguyên \(A_1, A_2, \dots, A_n\) \((1 \leq A_i \leq 10^9)\).

Output

  • In ra một dòng duy nhất gồm \(n\) số nguyên \(C_1, C_2, \dots, C_n\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(n \leq 1000\)
  • Subtask \(2\) (\(30\%\) số điểm): \(A_i \leq 1000000\)
  • Subtask \(3\) (\(40\%\) số điểm): không có giới hạn nào khác

Example

Test 1

Input
3
2 3 1
Output
3 1 2
...Xem thêm