1805C - Place for a Selfie - CodeForces Solution


binary search geometry math sortings

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;

using i64 = long long;

void solve() {
    int n, m;
    cin >> n >> m;
    
    vector<int> k(n);
    for (int i = 0; i < n; i++) {
        cin >> k[i];
    }
    
    sort(k.begin(), k.end());
    
    for (int i = 0; i < m; i++) {
        int a, b, c;
        cin >> a >> b >> c;
        
        bool ok = true;
        int j = lower_bound(k.begin(), k.end(), b) - k.begin();
        for (auto i : {j - 1, j}) {
            if (i < 0 || i >= n) {
                continue;
            }
            int x = k[i];
            i64 v = 1LL * (b - x) * (b - x) - 4LL * a * c;
            if (v < 0) {
                ok = false;
                cout << "YES\n";
                cout << x << "\n";
                break;
            }
        }
        
        if (ok) {
            cout << "NO\n";
        }
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int t;
    cin >> t;
    
    while (t--) {
        solve();
    }
    
    return 0;
}


Comments

Submit
0 Comments
More Questions

80A - Panoramix's Prediction
1354B - Ternary String
122B - Lucky Substring
266B - Queue at the School
1490A - Dense Array
1650B - DIV + MOD
1549B - Gregor and the Pawn Game
553A - Kyoya and Colored Balls
1364A - XXXXX
1499B - Binary Removals
1569C - Jury Meeting
108A - Palindromic Times
46A - Ball Game
114A - Cifera
776A - A Serial Killer
25B - Phone numbers
1633C - Kill the Monster
1611A - Make Even
1030B - Vasya and Cornfield
1631A - Min Max Swap
1296B - Food Buying
133A - HQ9+
1650D - Twist the Permutation
1209A - Paint the Numbers
1234A - Equalize Prices Again
1613A - Long Comparison
1624B - Make AP
660B - Seating On Bus
405A - Gravity Flip
499B - Lecture