THPTQH_124 - KHU VƯỜN KÌ DIỆU

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: fgarden.inp
Output: fgarden.out

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, JavaScript, Kotlin, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài


Bình luận

Please read the guidelines before commenting.



  • 0
    ToiNhoDuongThanhThao  đã bình luận lúc 11, Tháng 6, 2026, 3:19

    include <iostream>

    include <vector>

    include <deque>

    include <algorithm>

    include <fstream>

    using namespace std;

    int main() { iosbase::syncwith_stdio(false); cin.tie(NULL);

    ifstream cin_f("FGARDEN.INP");
    ofstream cout_f("FGARDEN.OUT");
    
    int n;
    long long t;
    if (!(cin_f >> n >> t)) return 0;
    
    vector&lt;long long> h(n);
    for (int i = 0; i < n; ++i) cin_f >> h[i];
    
    deque<int> max_dq, min_dq;
    int l = 0, max_len = 0;
    
    for (int r = 0; r < n; ++r) {
        while (!max_dq.empty() && h[max_dq.back()] <= h[r]) max_dq.pop_back();
        max_dq.push_back(r);
    
        while (!min_dq.empty() && h[min_dq.back()] >= h[r]) min_dq.pop_back();
        min_dq.push_back(r);
    
        while (h[max_dq.front()] - h[min_dq.front()] > t) {
            l++;
            if (max_dq.front() < l) max_dq.pop_front();
            if (min_dq.front() < l) min_dq.pop_front();
        }
    
        max_len = max(max_len, r - l + 1);
    }
    
    cout_f << max_len << endl;
    
    return 0;
    

    }