제출 #1055309

#제출 시각아이디문제언어결과실행 시간메모리
1055309vjudge1송신탑 (IOI22_towers)C++17
11 / 100
4057 ms6688 KiB
#include "towers.h"
#include <bits/stdc++.h>

using namespace std;

using vi = vector<int>;

int n;
vi H, Hord;

map<int, int> NorMap;

void init(int n, vi H0) {
    ::n = n;
    H = H0;
    Hord = H;
    sort(Hord.begin(), Hord.end());
    Hord.resize(unique(Hord.begin(), Hord.end()) - Hord.begin());
    for(int i = 0; i < (int)Hord.size(); ++i) 
        NorMap[Hord[i]] = i;
}

int max_towers(int l, int r, int D) {
    vi DP(n, 1);
    int re = 0;
    for (int i = l; i <= r; ++i) {
        int ma = 0;
        for (int j = i + 2; j <= r; ++j) {
            ma = max(ma, H[j - 1]);
            if(ma >= H[j] + D && ma >= H[i] + D) {
                DP[j] = max(DP[j], DP[i] + 1);
            }
        }
        re = max(re, DP[i]);
    }
    return re;
}
#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...