제출 #626015

#제출 시각아이디문제언어결과실행 시간메모리
626015I_love_Hoang_YenRadio Towers (IOI22_towers)C++17
11 / 100
4070 ms1556 KiB
#include "bits/stdc++.h"
using namespace std;

/*
// sub 1 {{{
int k = -1;
std::vector<int> a;

void init(int n, std::vector<int> _a) {
    assert((int) _a.size() == n);
    a = _a;
    k = max_element(a.begin(), a.end()) - a.begin();
}

int max_towers(int l, int r, int d) {
    if (k < l || r < k) return 1;
    if (a[l] <= a[k] - d && a[r] <= a[k] - d) return 2;
    return 1;
}
// }}}
*/

// sub 2 {{{
std::vector<int> a;

void init(int n, std::vector<int> _a) {
    assert((int) _a.size() == n);
    a = _a;
}

int max_towers(int l, int r, int d) {
    std::vector<int> f(a.size());
    for (int i = l; i <= r; ++i) {
        f[i] = 1;

        int max_tower = -1;
        for (int j = i - 1; j >= l; --j) {
            if (a[i] <= max_tower - d
                    && a[j] <= max_tower - d) {
                f[i] = std::max(f[i], f[j] + 1);
            }
            max_tower = std::max(max_tower, a[j]);
        }
    }
    return *max_element(f.begin(), f.end());
}
// }}}
#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...