deydhananjoy5's blog

By deydhananjoy5, history, 2 years ago, In English

Problem Link


bool canISaveMidMice(int mid, vector<int>a, int n) { // 0 1 2 3 4 5 6 7 8 9 10 //1 2 3 4 5 6 7 | 8 9 10 11 //n = 11 int mouse = 0, sum = 0, ind = a.size() - mid ;//11 - 4 = 6 while(ind < a.size()) { if(mouse >= a[ind])return false; sum += (n - a[ind]); mouse += (n - a[ind]); ind++; } return true; } void solve() { int n, k; cin>>n>>k; _vi v(k); for(auto &it : v)cin>>it; sort(_a(v)); int l = 0, h = k; int ans = 0; while(l <= h) { int mid = l - ((l - h)/2); if(canISaveMidMice(mid, v, n) == false) { h = mid - 1; } else { ans = max(ans, mid); // debug(ans); l = mid + 1; } } cout<<ans<<endl; return; }
  • Vote: I like it
  • +7
  • Vote: I do not like it

| Write comment?
»
2 years ago, # |
  Vote: I like it +32 Vote: I do not like it