#include<iostream>
#include<algorithm>
#include "towers.h"
#include <vector>
using namespace std;
int ma[2005][2005];
int used[2005];
int which[2005][2005];
vector<int>h;
void init(int N, std::vector<int> H)
{
h=H;
for(int i=0;i<N;i++)
{
ma[i][i]=h[i];
which[i][i]=i;
for(int j=i+1;j<N;j++)
{
if(ma[i][j-1]>h[j])
{
which[i][j]=which[i][j-1];
}
else which[i][j]=j;
ma[i][j]=max(ma[i][j-1],h[j]);
}
}
}
int max_towers(int L, int R, int D)
{
bool ima=0;
for(int i=L;i<=R;i++)
{
for(int j=i+2;j<=R;j++)
{
if(ma[i+1][j-1]-D>=max(h[i],h[j]))
{
used[which[i+1][j-1]]++;
}
}
}
if(!ima)return 1;
int cnt=0;
for(int i=L;i<=R;i++)
{
cnt=max(cnt,used[i]);
}
return cnt;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |