Submission #1054268

#TimeUsernameProblemLanguageResultExecution timeMemory
1054268unnickSkyscraper (JOI16_skyscraper)C++14
5 / 100
2067 ms604 KiB
#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n, l, sum = 0;
    cin >> n >> l;
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    vector<int> p(n);
    for (int i = 0; i < n; i++) p[i] = i;
    vector<int> ct(n);
    for (int i = 0; i < n; i++) ct[i] = true;
    while (true) {
        int s = 0;
        for (int i = 0; i < n-1; i++) {
            s += abs(a[p[i]] - a[p[i+1]]);
        }
        if (s <= l) sum++;
        int ptr = n-1;
        while (ptr >= 0) {
            ct[p[ptr]] = false;
            p[ptr]++;
            while (p[ptr] < n && ct[p[ptr]]) {
                p[ptr]++;
            }
            if (p[ptr] < n) break;
            ptr--;
        }
        if (ptr < 0) break;
        ct[p[ptr]] = true;
        for (int i = 0; i < n; i++) {
            if (!ct[i]) {
                ct[i] = true;
                p[++ptr] = i;
            }
        }
    }
    cout << sum << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...