cs_013 Máy bay trực thăng đi tuần

Xem dạng PDF

Gửi bài giải

Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

cs013 MÁY BAY TRỰC THĂNG ĐI TUẦN

Cho n bình xăng chứa trong các bình v1 đến vn. Máy bay cần thực hiện n lần đi tuần từ khu vực A sang khu vực B và ngược lại. Ban đầu trực thăng ở bên A và cách ranh giới (giữa A và B ) là d km. Hãy đếm có bao nhiêu cách bố trí thứ tự các bình xăng để máy bay thực hiện n chuyến đi tuần đúng theo yêu cầu.

Máy bay có thể chọn bình xăng vj trong lần bay thứ i nếu như giá trị bình xăng vj > d (để có thể bay chuyển từ vùng này sang vùng kia) và khi thực hiện bay sang vùng khác sẽ cách ranh giới là v_j -d.

Dữ liệu vào gồm có 2 dòng. Dòng thứ nhất chứa hai số nguyên n và d. Dòng thứ 2 chứa n số nguyên dương tương ứng với giá trị v[i].

Dữ liệu ra: Số cách đi.

Ví dụ:

INPUT

3 4 2 2 5

OUTPUT

2


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    APL_TranVanTri  đã bình luận lúc 26, Tháng 11, 2024, 3:48

    include<bits/stdc++.h>

    using namespace std; int kq[100],chon[100],v[100],n,dem=0; void khoitao(){ for(int i=0;i<n;i++){

        cin>>v[i];
        chon[i]=kq[i]=0;
    }
    

    } void tim( int i, int d){ if(i>n) dem++; else for(int j=0;j<n;j++){ if(chon[j]==0&&v[j]>d){ kq[i-1]=v[j]; chon[j]=1; tim(i+1,v[j]-d); kq[i-1]=0; chon[j]=0; } } } int main(){ int d; cin>>n>>d; khoitao(); tim(1,d); cout<<dem; return 0;

    }