Submission #1054785

#TimeUsernameProblemLanguageResultExecution timeMemory
1054785HaroldSkyscraper (JOI16_skyscraper)C++14
5 / 100
2040 ms440 KiB
#include<bits/stdc++.h>

using namespace std;

#define ll long long

ll pick(vector<int>& a, int l, set<int> s, int prev) {
    if(l < 0) {
        return 0;
    }
    if(s.size() == a.size()) {
        return 1;
    }
    ll res = 0;
    for(auto i: a) {
        if(s.count(i)) {
            continue;
        }
        if(s.empty()) {
            prev = i;
        }
        s.insert(i);
        res = (res + pick(a, l-abs(i-prev), s, i)) % 1000000007;
        s.erase(i);
    }
    return res;
}

int main() {
    int n, k;
    cin >> n >> k;
    vector<int> a(n);
    for(int i = 0; i < n; i++) {
        cin >> a[i];
    }
    sort(a.begin(), a.end());
    cout << pick(a, k, {}, 0) << endl;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...