booljudge(string s){ int cntNum = 0, fhNum = 0; for (char c : s) { if (isdigit(c)) cntNum++; if (c == '#') fhNum++; }
return (cntNum >= 1 && fhNum >= 1); }
voidsolve(){ int res = 0; string s = "kfdhtshmrw4nxg#f44ehlbn33ccto#mwfn2waebry#3qd1ubwyhcyuavuajb#vyecsycuzsmwp31ipzah#catatja3kaqbcss2th"; for (int i = 0; i < s.size(); i++) { int len = 8; while (i + len - 1 < s.size() && len <= 16) { res += judge(s.substr(i, len)); len++; } }
boolcheck(int l, int m){ int last = 0; for (int i = 1; i <= n; i++) { int k = max(int(ceil((a[i] - last) * 1.0 / l)) - 1, 0); if (m < k) returnfalse; m -= k, last = a[i]; }
returntrue; }
voidsolve(){ cin >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i];
int l = 1, r = 1e9; while (l < r) { int mid = l + r >> 1;
if (check(mid, m + 1)) r = mid; else l = mid + 1; }