Submission #1328754

#TimeUsernameProblemLanguageResultExecution timeMemory
1328754lywoemMarathon Race 2 (JOI24_ho_t3)C++20
7 / 100
1 ms344 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define l(a, b, i) for (ll i = a; i < b; i++)
#define rl(a, b, i) for (ll i = a; i >= b; i--)
#define vpair vector<pair<ll, ll>>
#define inf LLONG_MAX
#define ninf LLONG_MIN

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    ll N, L, Q, S, G, T; cin >> N >> L; vector<ll> vecX(N + 1, 0);
    l(1, N + 1, i) cin >> vecX[i];
    sort(vecX.begin() + 1, vecX.end());

    cin >> Q; 
    while (Q--) {
        cin >> S >> G >> T;
        ll last = vecX[N]; // vị trí quả bóng cuối
        ll time = last + 1; // ban đầu mình chạy xuống lấy quả cuối đầu tiên, mất vecX[N] giây chạy + 1 giây nhặt
        ll cur = 1; // số bóng hiện tại đã nhặt là 1

        rl(N - 1, 1, i) { // h mình sẽ đi ngược từ chỗ quả cuối về vạch 0
            ll dist = vecX[i + 1] - vecX[i]; // khoảng cách từ quả trước đến quả này
            time += dist * (cur + 1) + 1;
            cur++;
        }

        ll finaldist = vecX[1]; // khoảng cách từ quả 1 đến vạch 0
        time += finaldist * (cur + 1); // k +1 nữa vì lần này chạy về vạch 0 th chứ k nhặt quả nào nữa :D

        if (time <= T) cout << "Yes" << "\n";
        else cout << "No" << "\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...