QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 1024 MB Points totaux : 100

#14885. 缆车狂热

Statistiques

两辆缆车车厢在轨道中点交会。CC BY 2.0,作者 Marco Verch,源自 Flickr

你正在阿尔卑斯山滑雪旅行,需要乘坐缆车。然而,通常会有很长的队伍在排队等候缆车带你到山顶。作为一个讨厌在早上浪费时间的人,你希望找到开始排队的最佳时刻,以使排队时间最小化。

缆车站每天开放 $n$ 分钟。一辆缆车车厢一次可运送 $c$ 人,且每分钟整都会有一辆车厢出发。对于今天缆车开放的每一分钟,你都知道到达的人数。

你希望在车站开放期间,恰好在某一分钟的开始时刻到达,就像其他人一样。请注意,你是一个非常礼貌的人,如果有人与你在同一分钟到达,你会让他们先排队,然后你再排在他们后面。

计算你应该在开放时间后多少分钟到达才能使等待时间最小,或者确定今天根本无法乘上缆车。如果有两个时间能达到相同的最小等待时间,输出最早的那个时间。

输入格式

输入包含:

  • 第一行包含两个整数 $n$ 和 $c$($1 \le n \le 10^5$,$1 \le c \le 10^9$),分别表示今天缆车开放的分钟数,以及每分钟一辆缆车车厢能运送上山的人数。
  • 第二行包含 $n$ 个整数 $a_0, \dots, a_{n-1}$($0 \le a_i \le 10^9$),其中 $a_i$ 表示在缆车开放 $i$ 分钟后新到达的人数。

输出格式

如果今天无法乘上缆车,输出 impossible。否则,输出在开放时间后多少分钟(从 0 开始计数)你应该进入队列,以使等待时间最小化。

样例

输入样例 1

5 1
5 0 0 0 0

输出样例 1

impossible

输入样例 2

5 4
8 6 4 2 0

输出样例 2

0

输入样例 3

10 10
12 11 10 9 8 7 6 5 4 3

输出样例 3

5

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.