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
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++){
} 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;
}