Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- bool check(vector<vector<int>> &a, int k)
- {
- int rich = k - 1;
- int poor = 0;
- int count = 0;
- for (int i = 0; i < a.size(); i++)
- {
- if (a[i][0] >= rich && a[i][1] >= poor)
- {
- rich--;
- poor++;
- count++;
- }
- }
- return count >= k;
- }
- int maximumQuestions(int N, vector<vector<int>> &A)
- {
- int start = 1;
- int end = N;
- int ans = 0;
- while (start <= end)
- {
- int mid = start + (end - start) / 2;
- if (check(A, mid))
- {
- ans = mid;
- start = mid + 1;
- }
- else
- {
- end = mid - 1;
- }
- }
- return ans;
- }
- signed main()
- {
- int N;
- cin >> N;
- vector<vector<int>> A(N, vector<int>(2));
- for (int i = 0; i < N; i++)
- {
- cin >> A[i][0] >> A[i][1];
- }
- cout << maximumQuestions(N, A) << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment