729C - Road to Cinema - CodeForces Solution


binary search greedy sortings *1700

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define all(x) x.begin(), x.end()
#define push(x) push_back(x)
#define fill(arr, val) memset(arr, val, sizeof(arr));
#define forto(i, a, b) for (int i = a; i <= b; i++)
#define fordw(i, b, a) for (int i = b; i >= a; i--)
#define ll long long
#define price first
#define futank second
#define S (gas[i] - gas[i-1])

using namespace std;

int main()
{
    IOS

    ll n, k, s, t; cin >> n >> k >> s >> t;

    vector<pair<ll, ll>> car(n);
    vector<ll> gas(k+2); gas[0] = 0; gas[k+1] = s;

    for (int i = 0; i < n; i++)
    {
        cin >> car[i].price >> car[i].futank;
    }

    for (int i = 1; i <= k; i++)
    {
        cin >> gas[i];
    }

    sort(all(gas));
    
    ll l = 0, r = (int)1e9;
    ll ans;

    while (l <= r)
    {
        ll m = (l+r)/2;

        bool check = true;

        ll sumT = 0;

        for (int i = 1; i < gas.size(); i++)
        {
            if (m - S < 0)
            {
                check = false;
                break;
            }
            else sumT += 2*S - min(m-S, S);
        }
        if (!check || sumT > t)
        {
            l = m + 1;
        }
        else
        {
            ans = m;
            r = m -1;
        }
    }

    ll mmb = LLONG_MAX;

    for (int i = 0; i < n; i++)
    { 
        if (car[i].futank >= ans)
        {
            mmb = min(car[i].price, mmb);
        }
    }

    cout << (mmb != LLONG_MAX ? mmb : -1);

    return 0;
}


Comments

Submit
0 Comments
More Questions

1654C - Alice and the Cake
369A - Valera and Plates
1626A - Equidistant Letters
977D - Divide by three multiply by two
1654B - Prefix Removals
1654A - Maximum Cake Tastiness
1649A - Game
139A - Petr and Book
1612A - Distance
520A - Pangram
124A - The number of positions
1041A - Heist
901A - Hashing Trees
1283A - Minutes Before the New Year
1654D - Potion Brewing Class
1107B - Digital root
25A - IQ test
785A - Anton and Polyhedrons
1542B - Plus and Multiply
306A - Candies
1651C - Fault-tolerant Network
870A - Search for Pretty Integers
1174A - Ehab Fails to Be Thanos
1169A - Circle Metro
780C - Andryusha and Colored Balloons
1153A - Serval and Bus
1487C - Minimum Ties
1136A - Nastya Is Reading a Book
1353B - Two Arrays And Swaps
1490E - Accidental Victory