結果
| 問題 | No.343 手抜き工事のプロ |
| コンテスト | |
| ユーザー |
norioc
|
| 提出日時 | 2026-01-07 02:25:05 |
| 言語 | Scala(Beta) (3.7.4) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 802 bytes |
| 記録 | |
| コンパイル時間 | 14,525 ms |
| コンパイル使用メモリ | 294,080 KB |
| 実行使用メモリ | 16,216 KB |
| 最終ジャッジ日時 | 2026-01-07 02:25:26 |
| 合計ジャッジ時間 | 19,369 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | TLE * 1 -- * 26 |
ソースコード
import math._
object Main {
def isInvalid(L: Int, xs: Array[Int]): Boolean = {
for (i <- 0 to xs.length-2) {
if (abs(xs(i) - xs(i+1)) >= L) return true
}
false
}
def calc(N: Int, L: Int, xs: Array[Int]): Int = {
if (isInvalid(L, xs)) return -1
var ans = 0
var p = (xs.last + xs.last + L) / 2.0
var cnt = 1
for (i <- xs.length-2 to 0 by -1) {
var t = p / cnt
if (xs(i) < t && t < xs(i) + L && xs(i+1) < t && t < xs(i+1) + L) {
}
else ans += 1
p += (xs(i) + xs(i) + L) / 2.0
cnt += 1
}
ans
}
def main(args: Array[String]) = {
val sc = new java.util.Scanner(System.in)
val N = sc.nextInt
val L = sc.nextInt
val xs = Array.fill(N-1)(sc.nextInt)
println(calc(N, L, Array(0) ++ xs))
}
}
norioc