/* -*- coding: utf-8 -*- * * 343.cc: No.343 手抜き工事のプロ - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_N = 100000; /* typedef */ /* global variables */ int xs[MAX_N]; /* subroutines */ /* main */ int main() { int n, l; cin >> n >> l; xs[0] = 0; for (int i = 1; i < n; i++) cin >> xs[i]; int cnt = 0; double lh = (double)l / 2, gcsum = 0.0; for (int i = n - 1; i > 0; i--) { gcsum += lh + xs[i]; double gc = gcsum / (n - i); int ul0 = xs[i], ul1 = ul0 + l; int ll0 = xs[i - 1], ll1 = ll0 + l; //printf("gc[%d]=%lf\n", i, gc); //printf(" [%d-%d]-[%d-%d]\n", ul0, ul1, ll0, ll1); if (min(ul1, ll1) - max(ul0, ll0) < 1) { cnt = -1; break; } if (gc <= ul0 || gc >= ul1 || gc <= ll0 || gc >= ll1) cnt++; } printf("%d\n", cnt); return 0; }