AT_arc017_2.[ARC017B] 解像度が低い。

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

发生了不得了的事情!!

竟然,我被选为我们公司的下一次决算报告会的发言人!为了公司的形象,也为了我在公司内部的地位,无论如何都要做出给人好印象的报告。

我们公司最近的业绩可以用一个包含 NN 个数的数列来表示。虽然我很想把这个数列全部展示出来……,但实际上,我们公司的业绩并不能说有多好。我到底该怎么办才好呢……

正当我一筹莫展时,我决定先调查一下报告会场的设备。没想到,这也许是我与生俱来的好运,投影仪的分辨率非常低,屏幕上一次最多只能显示 KK 个数字。如果能巧妙地选择业绩数列中连续的 KK 个数字,也许就能让公司业绩看起来像是节节攀升?

我觉得这是个绝妙的主意,但如果听众问我“那只是业绩的一部分吧?能不能把其他部分也给我们看看?”那就完蛋了。因此,为了做好万全准备,我决定事先调查一下,在业绩数列中,有多少个连续的 KK 个数字的区间,在投影仪上显示时,看起来业绩始终在上升。

为了强调公司是持续成长的企业,某个值必须严格大于它前面的值。也就是说,像 100, 200, 300100,\,200,\,300 这样的序列被认为是始终上升的,但 100, 200, 200100,\,200,\,200 这样的序列则不被认为是始终上升的。

※本题为虚构。业绩请如实报告。

输入按以下格式从标准输入给出。

NN KK A1A_1 A2A_2 : ANA_N

  • 第 11 行给出表示业绩的数列元素个数 N (1≤N≤300,000)N\ (1\leq N\leq 300,000),以及投影仪一次能显示的数字个数 K (1≤K≤N)K\ (1\leq K\leq N),两者以半角空格分隔。
  • 第 22 行到第 NN 行,每行给出一个表示业绩的整数 Ai (1≤Ai≤300,000)A_i\ (1\leq A_i\leq 300,000),第 ii 行表示第 ii 个业绩。

注意: 本题最多需要读取 300,000300,000 行输入。大多数编程语言没有问题,但如果用 Python 2.x 的 input() 读取,可能无法在时限内完成。请改用 int(raw_input()) 读取整数。

请输出业绩数列中,能够在投影仪上显示且看起来业绩始终上升的连续 KK 个数字的区间个数,输出一行。

10 4
100
300
600
700
800
400
500
800
900
900
3

从表示业绩的 1010 个数字中,取出连续的 44 个,可以得到:

  • (100, 300, 600, 700)(100,\,300,\,600,\,700) 是始终上升的
  • (300, 600, 700, 800)(300,\,600,\,700,\,800) 是始终上升的
  • (600, 700, 800, 400)(600,\,700,\,800,\,400) 不是始终上升的
  • (700, 800, 400, 500)(700,\,800,\,400,\,500) 不是始终上升的
  • (800, 400, 500, 800)(800,\,400,\,500,\,800) 不是始终上升的
  • (400, 500, 800, 900)(400,\,500,\,800,\,900) 是始终上升的
  • (500, 800, 900, 900)(500,\,800,\,900,\,900) 不是始终上升的

因此,答案为 33。

10 3
10
40
50
80
90
30
20
40
90
95
5

在这种情况下,始终上升的区间如下图箭头所示,共有 55 个。

8 4
1
2
3
4
5
6
7
8
5

原本业绩就一直在上升,无论投影仪显示哪一段都没有问题。

8 2
100000
90000
50000
30000
10000
4000
200
1
0

如果原本业绩太差,无论显示哪一段都无法让业绩看起来是上升的。

输入格式

第 11 行包含两个整数 NN 和 KK,以空格分隔。

接下来的 NN 行,每行一个整数 AiA_i,表示业绩数列的第 ii 项。

输出格式

输出一个整数,表示业绩数列中连续 KK 个数字的区间中,业绩始终上升的区间个数。

说明/提示

无。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页