Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define FASTER() ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
- #define ff first
- #define ss second
- #define pb push_back
- #define all(a) a.begin(), a.end()
- #define dbg(x) cerr<<" "<<#x<<" "<<x<<endl
- typedef long long ll;
- using namespace std;
- int n, m;
- vector <int> deg;
- void fileIO() {
- freopen("gotham.in", "r", stdin);
- freopen("gotham.out", "w", stdout);
- }
- int check(int k) {
- int cur = 0;
- for(int i = 0; i < n; i++) {
- if(deg[i] >= k - 1) {
- cur++;
- }
- }
- return cur;
- }
- int main() {
- FASTER();
- fileIO();
- cin >> n >> m;
- ll sum = 0;
- deg.resize(n);
- for(int i = 0; i < n; i++) {
- cin >> deg[i];
- sum += deg[i];
- }
- if(m > 0 && n == 1) {
- cout << -1;
- return 0;
- }
- if(sum / 2 < m) {
- cout << -1;
- return 0;
- }
- int l = 1, r = n + 1;
- while(r - l > 1) {
- int mid = (r + l) >> 1;
- if(sum < mid) {
- r = mid;
- continue;
- }
- int cur = check(mid);
- dbg(mid);
- dbg(cur);
- if((cur - 1) * cur / 2 <= m && cur >= mid) { //satisfies
- l = mid;
- } else {
- r = mid;
- }
- }
- cout << l;
- }
Advertisement
Add Comment
Please, Sign In to add comment