#6478. A:视野 (View)

A:视野 (View)

题目 A:视野 (View)

属性 规格
输入文件 标准输入 (Standard Input)
输出文件 标准输出 (Standard Output)
时间限制 C++: 1.5s / Java: 3s / Python: 15s
内存限制 1024 MB

题目描述

Linetown 由 NN 座相邻且宽度相等的塔组成。Linette 准备在其中一座塔的顶层寻找公寓。除了价格,视野将是她做决定的关键因素。

从一座塔向两边看,视野的定义如下:

  • 阻挡规则:任何一座高度大于或等于当前塔的塔都会阻挡视野。
  • 有限视野:如果在左侧第 ii 个位置和右侧第 jj 个位置分别被塔阻挡,则该塔的视野为 ji2j - i - 2(即中间能看到的塔宽数量)。
  • 半无限 (semi infinite):如果仅有一侧没有被任何塔阻挡,视野为 semi infinite
  • 无限 (infinite):如果两侧都没有被任何塔阻挡,视野为 infinite

请帮助 Linette 确定每一座塔的视野。

输入格式

  • 第一行包含一个整数 NN (1N1061 \le N \le 10^6)。
  • 第二行包含 NN 个以空格分隔的整数 h1,h2,,hNh_1, h_2, \dots, h_N,代表从左到右每座塔的高度 (1hi1091 \le h_i \le 10^9)。

输出格式

输出 NN 行,第 ii 行代表第 ii 座塔的视野结果。 每行必须是:一个整数、semi infiniteinfinite 之一。


计分与子任务

  • 子任务 1 (0 分):样例测试。
  • 子任务 2 (20 分)N5000,hi106N \le 5000, h_i \le 10^6
  • 子任务 3 (20 分):高度递增 h1h2hN106h_1 \le h_2 \le \dots \le h_N \le 10^6
  • 子任务 4 (25 分)N200,000,hi106N \le 200,000, h_i \le 10^6
  • 子任务 5 (20 分)hi106h_i \le 10^6
  • 子任务 6 (15 分):无其他限制。