QOJ.ac

QOJ

時間限制: 1.0 s 記憶體限制: 1024 MB 總分: 100 可 Hack ✓

#18166. 飢餓的貓

统计

在成功防止貓咪在年度全國貓咪日(NCD)慶祝活動中滅絕後,貓咪 Ket 收到了來自食人貓王國的飢餓投訴。因此,Ket 被指派運送食物,以防止牠們再次訴諸同類相食。

這個貓咪王國可以模擬為一條從西向東延伸的長路。道路西端有一個食物銀行。食物銀行東側有 $n$ 個貓屋,編號從 $1$ 到 $n$。保證 $n$ 為偶數。第一間屋子位於食物銀行以東 $d[1]$ 公里處。對於 $i \ge 2$,第 $i$ 間屋子位於第 $(i - 1)$ 間屋子以東 $d[i]$ 公里處。

貓咪王國的道路模型示意圖

Ket 將駕駛一輛運貨卡車為這些屋子運送食物。卡車從食物銀行出發,初始時擁有 $x$ 單位的燃料。$1$ 單位的燃料允許 Ket 駕駛卡車沿路行駛 $1$ 公里。

第 $i$ 間屋子有 $f[i]$ 單位的燃料供卡車使用。卡車擁有無限的燃料儲存空間,且僅在燃料耗盡時才會停止。卡車在離開後不需要返回食物銀行。

此外,Ket 擁有一根魔法棒。揮動一次魔法棒,他可以交換第 $i$ 間和第 $(n - i + 1)$ 間貓屋中儲存的燃料量。此交換僅能在兩間屋子的燃料尚未被使用過的情況下進行。請幫助 Ket 找出他能到達的最遠屋子編號 $D$,並找出到達屋子 $D$ 所需的最少交換次數 $S$。

你可以在範例測試案例 1 中找到更詳細的說明。

輸入格式

你的程式必須從標準輸入讀取。

第一行包含兩個以空格分隔的整數 $n$ 和 $x$。

第二行包含 $n$ 個以空格分隔的整數 $d[1], d[2], \dots, d[n]$。

第三行包含 $n$ 個以空格分隔的整數 $f[1], f[2], \dots, f[n]$。

輸出格式

你的程式必須輸出到標準輸出。

在單行輸出兩個以空格分隔的整數。第一個整數應為 $D$,即 Ket 能到達的最遠屋子編號,隨後是 $S$,即到達屋子 $D$ 所需的最少交換次數。

資料範圍

對於所有測試案例,輸入滿足以下限制:

  • $2 \le n \le 500\,000$
  • $n$ 為偶數。
  • 對於所有 $1 \le i \le n$,$1 \le d[i] \le 10^9$
  • 對於所有 $1 \le i \le n$,$1 \le f[i] \le 10^9$
  • $d[1] \le x \le 10^9$

你的程式將在滿足以下限制的輸入實例上進行測試:

子任務 分數 其他限制
0 0 範例測試案例
1 7 對於所有 $1 \le i \le n$,$ f[i] - f[n - i + 1] = k$($k$ 為某個常數)
2 12 $n \le 40$
3 14 $f$ 為非遞減數列(對於所有 $1 \le i \le n - 1$,$f[i] \le f[i + 1]$)
4 19 $D \le \frac{n}{2}$
5 21 $n \le 5000$
6 27 無其他限制

說明:數字 $x$ 的絕對值,記作 $|x|$,是數線上 $0$ 與 $x$ 之間距離的非負數。例如,$|5| = 5$ 且 $|-5| = 5$。

範例

輸入格式 1

6 1
1 1 3 1 1 6
1 1 1 4 3 2

輸出格式 1

5 1

說明

食物銀行東側有 $n = 6$ 間屋子。Ket 的卡車初始有 $x = 1$ 單位的燃料,並移動到第 $1$ 間屋子。他在第 $1$ 間屋子加油後開往第 $2$ 間屋子。此時,Ket 使用魔法棒交換第 $2$ 間和第 $5$ 間屋子的燃料量是最優的,這使他能補充 $3$ 單位的燃料並到達第 $3$ 間屋子。隨後,他在前往接下來兩間屋子前可以補充 $1$ 單位的燃料,並在第 $4$ 間和第 $5$ 間屋子分別補充 $4$ 和 $1$ 單位的燃料(由於之前的交換)。

此時他剩下 $4$ 單位的燃料,無法前往第 $6$ 間屋子,因為該處需要 $6$ 單位的燃料。由於 Ket 在到達第 $6$ 間屋子前燃料耗盡,他只能到達第 $5$ 間屋子。此外,他必須使用魔法棒進行一次交換。因此,$D = 5$ 且 $S = 1$。

輸入格式 2

6 5
3 8 3 1 4 1
2 7 1 6 2 7

輸出格式 2

6 1

輸入格式 3

6 2
2 24 25 40 5 11
4 12 14 16 20 30

輸出格式 3

3 2

輸入格式 4

6 10
3 6 3 7 8 6
4 3 1 7 1 6

輸出格式 4

5 1

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.