제출 #1214761

#제출 시각아이디문제언어결과실행 시간메모리
1214761dosts송신탑 (IOI22_towers)C++20
0 / 100
4045 ms1560 KiB
#include "towers.h" #include <bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2") //#define int long long #define pii pair<int,int> #define vi vector<int> #define ff first #define ss second #define sp << " " << #define all(x) x.begin(),x.end() #define big(x) ((int)(x.size())) using namespace std; const int MOD = 1e9+7, LIM = 1e6+1, inf = 2e9; int sel = 0; int len; vi h; void init(int N, std::vector<int> H) { len = N; h = H; } int dnq(int L,int R,int D,int ban = inf) { int mx = -1,pick = -1; for (int i = L;i<=R;i++) { if (h[i] > ban) continue; if (h[i] > mx) { mx = h[i],pick = i; } } if (pick == -1) return 0; int sol = dnq(L,pick-1,D,mx-D),sag = dnq(pick+1,R,D,mx-D); return max({dnq(L,pick-1,D,ban),dnq(pick+1,R,D,ban),max(1,sol+sag)}); } int max_towers(int L, int R, int D) { return dnq(L,R,D); }
#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...