#STK0000084. Phần tử lớn hơn tiếp theo II (Next Greater Element II)
Phần tử lớn hơn tiếp theo II (Next Greater Element II)
Phần tử lớn hơn tiếp theo II (Next Greater Element II)
Nguồn: LeetCode
Phiên bản: Phước Hưng OJ Extended
Đề bài
Cho một mảng được xem là vòng tròn: sau phần tử cuối lại quay về phần tử đầu. Với mỗi vị trí, hãy tìm giá trị lớn hơn đầu tiên gặp được khi đi sang phải theo vòng tròn. Không được dùng chính phần tử đó làm đáp án. Nếu không tồn tại, in .
Input
Dòng đầu chứa . Dòng thứ hai chứa số nguyên của mảng.
Output
In số nguyên là phần tử lớn hơn tiếp theo theo vòng tròn của từng vị trí, hoặc .
Subtask
- Subtask 1 (30 điểm): ; các điều kiện khác giữ nguyên.
- Subtask 2 (70 điểm): , .
Ví dụ
Input
3
1 2 1
Output
2 -1 2
Giải thích
Mảng vòng tròn là .
- Với phần tử ở vị trí , đi sang phải gặp ngay , nên đáp án là .
- Với phần tử ở vị trí , đi qua phần tử ở vị trí , sau đó vòng về vị trí có giá trị ; không giá trị nào lớn hơn , nên đáp án là .
- Với phần tử ở vị trí , sau khi vòng về đầu mảng ta gặp ở vị trí bằng nó nên chưa đủ; tiếp theo gặp ở vị trí , nên đáp án là .
Do đó output là 2 -1 2.