// Problem: No.2217 Suffix+ No.2217后缀+ // Contest: yukicoder // URL: https://yukicoder.me/problems/no/2217 // Memory Limit: 512 MB // Time Limit: 2000 ms #include #define fastio ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); #define dbg(x) cout << #x << " = " << (x) << "\n"; #define popcount(x) __builtin_popcountll((x)) #define all(v) (v).begin(), (v).end() #define pb emplace_back #define x first #define y second using namespace std; typedef long long ll; typedef pair pll; const int inf = 0x3f3f3f3f; const int mod = 1e9 + 7; const int N = 1e5 + 7; ll n, k; ll a[N]; bool ok(ll mn, ll t) { ll pre = 0; for (int i = 1; i <= n; i++) { if (a[i] + pre < mn) { ll need = (mn - (a[i] + pre) + i - 1) / i; pre += need * i; t -= need; if (t < 0) return false; } } return true; } void solve() { cin >> n >> k; for (int i = 1; i <= n; i++) cin >> a[i]; ll l = 0, r = 1e16; while (l < r) { ll mid = (l + r + 1) >> 1; if (ok(mid, k)) l = mid; else r = mid - 1; } cout << l << "\n"; } int main() { fastio; int t = 1; // cin >> t; while (t--) { solve(); } return 0; }