結果
問題 | No.343 手抜き工事のプロ |
ユーザー |
|
提出日時 | 2017-07-07 16:13:39 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 22 ms / 2,000 ms |
コード長 | 595 bytes |
コンパイル時間 | 735 ms |
コンパイル使用メモリ | 100,280 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-06-12 20:46:36 |
合計ジャッジ時間 | 1,998 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
ソースコード
import std.algorithm, std.conv, std.range, std.stdio, std.string; void main() { auto n = readln.chomp.to!size_t; auto l = readln.chomp.to!long * 2; auto x = (n-1).iota.map!(_ => readln.chomp.to!long * 2).array; x = 0 ~ x; foreach (i; 1..n) if (x[i] >= x[i-1] + l || x[i] + l <= x[i-1]) { writeln(-1); return; } auto sg = (x[$-1] * 2 + l) / 2, r = 0; foreach (i; 1..n.to!long) { auto xi0 = x[$-1-i], xi1 = x[$-i]; if (sg <= xi0 * i || sg >= (xi0 + l) * i || sg <= xi1 * i || sg >= (xi1 + l) * i) ++r; sg += (xi0 * 2 + l) / 2; } writeln(r); }