Submission #1075396

#TimeUsernameProblemLanguageResultExecution timeMemory
1075396Muhammad_AneeqRadio Towers (IOI22_towers)C++17
11 / 100
4100 ms8536 KiB
#include <vector> #include <algorithm> #include <cmath> using namespace std; int const MAXN=1e5+10,LG=18; int sp[MAXN][LG]={}; int n; int dp[MAXN]={}; int a[MAXN]={}; void init(int N,vector<int> H) { for (int i=0;i<N;i++) sp[i][0]=H[i],a[i]=H[i]; for (int i=1;(1<<i)<=N;i++) for (int j=0;j+(1<<i)-1<N;j++) sp[j][i]=max(sp[j][i-1],sp[j+(1<<(i-1))][i-1]); n=N; } int get(int l,int r) { if (l>r) return -1; int lg=log2(r-l+1); return max(sp[l][lg],sp[r-(1<<lg)+1][lg]); } int max_towers(int L, int R, int D) { int i=L,j=R; if (R-L+1<3) { return R-L+1; } int ans=0; for (int i=L;i<=R;i++) { dp[i]=1; for (int j=i-2;j>=L;j--) { int z=get(j+1,i-1); if (z>=max(a[i],a[j])+D) dp[i]=max(dp[i],dp[j]+1); } ans=max(ans,dp[i]); } return ans; }

Compilation message (stderr)

towers.cpp: In function 'int max_towers(int, int, int)':
towers.cpp:28:6: warning: unused variable 'i' [-Wunused-variable]
   28 |  int i=L,j=R;
      |      ^
towers.cpp:28:10: warning: unused variable 'j' [-Wunused-variable]
   28 |  int i=L,j=R;
      |          ^
#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...