[Buổi 33][Graph Challenge][RDD] Bài 1: Chu kỳ hành tinh


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type

Chu kỳ hành tinh

Trong một buổi tối đầy sao, FullHouse Dev đang ngắm nhìn bầu trời và tưởng tượng về một hệ thống các hành tinh kỳ diệu. Họ phát hiện ra một câu đố thú vị về việc di chuyển giữa các hành tinh thông qua các cổng dịch chuyển.

Bài toán

FullHouse Dev được cung cấp một hệ thống gồm \(n\) hành tinh. Mỗi hành tinh có một cổng dịch chuyển đến một hành tinh khác (hoặc chính nó). Khi bắt đầu từ một hành tinh, bạn sẽ di chuyển qua các cổng dịch chuyển cho đến khi đến được một hành tinh mà bạn đã đi qua trước đó. Nhiệm vụ của nhóm là tính toán số lần dịch chuyển cần thiết nếu bắt đầu từ mỗi hành tinh.

INPUT FORMAT:
  • Dòng đầu tiên chứa số nguyên \(n\): số lượng hành tinh. Các hành tinh được đánh số từ \(1\) đến \(n\).
  • Dòng thứ hai chứa \(n\) số nguyên \(t_1, t_2, ..., t_n\): với mỗi hành tinh, \(t_i\) là số hiệu của hành tinh đích mà cổng dịch chuyển dẫn đến.
OUTPUT FORMAT:
  • In ra \(n\) số nguyên: với mỗi hành tinh, số lần dịch chuyển cần thiết nếu bắt đầu từ hành tinh đó.
Ràng buộc:
  • \(1 \leq n \leq 2 \cdot 10^5\)
  • \(1 \leq t_i \leq n\)
Ví dụ
INPUT
5
2 4 3 1 4
OUTPUT
3 3 1 3 4
Giải thích
  • Nếu bắt đầu từ hành tinh 1: 1 → 2 → 4 → 1 (3 lần dịch chuyển)
  • Nếu bắt đầu từ hành tinh 2: 2 → 4 → 1 → 2 (3 lần dịch chuyển)
  • Nếu bắt đầu từ hành tinh 3: 3 → 3 (1 lần dịch chuyển)
  • Nếu bắt đầu từ hành tinh 4: 4 → 1 → 2 → 4 (3 lần dịch chuyển)
  • Nếu bắt đầu từ hành tinh 5: 5 → 4 → 1 → 2 → 4 (4 lần dịch chuyển)

Comments

There are no comments at the moment.

Zalo