Submission #739809

#TimeUsernameProblemLanguageResultExecution timeMemory
739809NonozeRadio Towers (IOI22_towers)C++17
0 / 100
637 ms5652 KiB
#include "towers.h" #include <bits/stdc++.h> using namespace std; int kval, k, n, premier, dernier; set<pair<int, int>> avant; set<pair<int, int>> apres; void init(int tempn, vector<int> temph) { n=tempn; premier=temph[0], dernier=temph[n-1]; for (int i = 1; i < n; ++i) { if (temph[i]<temph[i-1]) { kval=temph[i-1], k=i-1; break; } avant.insert({temph[i-1], i-1}); } for (int i = k+1; i < n; ++i) { apres.insert({temph[i], i}); } return; } int max_towers(int L, int R, int D) { if (kval-D<premier || kval-D<dernier) return 0; auto itl=avant.lower_bound({kval-D, 0}); auto itr=apres.lower_bound({kval-D, 0}); if (itl==avant.end() || itr==apres.end()) itl--, itr--; auto a=*itl, b=*itr; int l=a.second, r=b.second; if (l<L || r>R) return 0; return (l-L+1)*(R-r+1); }
#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...