結果
問題 | 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);}