#STK0000082. Nhiệt độ hằng ngày (Daily Temperatures)

Nhiệt độ hằng ngày (Daily Temperatures)

Nhiệt độ hằng ngày (Daily Temperatures)

Nguồn: LeetCode

Phiên bản: Phước Hưng OJ Extended

Đề bài

Cho dãy temperatures, trong đó phần tử thứ ii là nhiệt độ của ngày ii. Với mỗi ngày, hãy tính số ngày phải chờ để gặp một ngày có nhiệt độ cao hơn. Nếu về sau không có ngày nào nóng hơn, kết quả là 00.

Input

Dòng đầu chứa nn, số ngày. Dòng thứ hai chứa nn nhiệt độ.

Output

In nn số nguyên, trong đó số thứ ii là số ngày cần chờ từ ngày ii đến ngày nóng hơn tiếp theo, hoặc 00.

Subtask

  • Subtask 1 (30 điểm): n≤2000n\le2000; các điều kiện khác giữ nguyên.
  • Subtask 2 (70 điểm): 1≤n≤1051\le n\le10^5, 30≤temperaturesi≤10030\le temperatures_i\le100.

Ví dụ

Input

8
73 74 75 71 69 72 76 73

Output

1 1 4 2 1 1 0 0

Giải thích

Các nhiệt độ theo ngày là 73,74,75,71,69,72,76,7373,74,75,71,69,72,76,73.

  • Ngày 11 có 7373; ngày 22 có 74>7374>73, nên chờ 11 ngày.
  • Ngày 22 có 7474; ngày 33 có 75>7475>74, nên chờ 11 ngày.
  • Ngày 33 có 7575; các ngày 4,5,64,5,6 lần lượt là 71,69,7271,69,72 đều không cao hơn 7575; ngày 77 có 76>7576>75, nên chờ 7−3=47-3=4 ngày.
  • Ngày 44 có 7171; ngày 55 là 6969, còn ngày 66 là 72>7172>71, nên chờ 22 ngày.
  • Ngày 55 có 6969; ngày 66 là 72>6972>69, nên chờ 11 ngày.
  • Ngày 66 có 7272; ngày 77 là 76>7276>72, nên chờ 11 ngày.
  • Ngày 77 có 7676 và không có ngày nào sau đó nóng hơn, nên nhận 00.
  • Ngày 88 là ngày cuối, nên nhận 00.

Vì vậy output là 1 1 4 2 1 1 0 0.