Submission #633382

#TimeUsernameProblemLanguageResultExecution timeMemory
633382LawlietRadio Towers (IOI22_towers)C++17
11 / 100
4078 ms1736 KiB
#include "towers.h"
#include <bits/stdc++.h>

using namespace std;

const int maxn = 100010;

int n;

int v[maxn];
int dp[maxn];

void init(int N, std::vector<int> H) {
    n = N;

    for(int i = 1 ; i <= n ; i++)
        v[i] = H[i - 1];
}

int max_towers(int L, int R, int D) 
{
    L++; R++;
    int ans = 0;

    for(int i = R ; i >= L ; i--)
    {
        dp[i] = 0;
        int maxTower = v[i + 1];

        for(int j = i + 2 ; j <= R ; j++)
        {
            if( v[i] <= maxTower - D && v[j] <= maxTower - D )
                dp[i] = max( dp[i] , dp[j] );

            maxTower = max( maxTower , v[j] );
        }

        dp[i]++;
        ans = max( ans , dp[i] );
    }

    return ans;
}
#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...