제출 #1356643

#제출 시각아이디문제언어결과실행 시간메모리
1356643vjudge1A Huge Tower (CEOI10_tower)C++17
25 / 100
1096 ms452 KiB
#include <bits/stdc++.h>
using ll = long long;
using namespace std;
#define int ll

int mod=1e9+9;
int a[105];

int32_t main(){
    ios_base::sync_with_stdio(false); cin.tie(0);
    int n, k;
    cin >> n >> k;
    for(int i=1; i<=n; i++)cin >> a[i];
    a[n+1]=1e9;
    sort(a+1, a+n+1);
    vector<pair<int, int>> v;
    int ans=1;
    for(int i=1; i<=n; i++){
        if(a[i+1]-a[i]>k){
            v.push_back({a[i], i});
            //for(auto e:v)cout << e << ' '; cout << '\n';
            if(v.size()==1)continue;
            int val=0;
            do{
                bool flag=1;
                for(int j=1; j<v.size(); j++){
                    if(v[j].first-v[j-1].first>k){
                        flag=0;
                        break;
                    }
                }
                if(flag)val++;
            }while(next_permutation(v.begin(), v.end()));
            ans*=val;
            ans%=mod;
            v.clear();
        }
        else{
            v.push_back({a[i], i});
        }
    }
    cout << ans;
    return 0;
}
#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...
#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...
#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...