Submission #629707

#TimeUsernameProblemLanguageResultExecution timeMemory
629707peti1234Radio Towers (IOI22_towers)C++17
23 / 100
4050 ms1488 KiB
#include <bits/stdc++.h> using namespace std; const int c=100005; int n, t[c], pos; bool tc1=1; void init(int N, vector<int> sz) { n=N; for (int i=0; i<n; i++) { t[i+1]=sz[i]; if (t[i+1]>t[pos]) pos=i; } for (int i=1; i<=n; i++) { if (i<pos && t[i]>t[i+1] || i>pos && t[i]>t[i-1]) { tc1=0; } } } int lassu(int l, int r, int d) { int ut=t[l]+d, ans=0, id=1; for (int i=l; i<=r; i++) { if (id==1) { ut=max(ut, t[i]); if (ut-t[i]>=d) { ut=t[i]; id=0; ans++; } } else { ut=min(ut, t[i]); if (t[i]-ut>=d) { ut=t[i]; id=1; } } } return ans; } int max_towers(int l, int r, int d) { l++, r++; if (tc1) { if (l<=pos && pos<=r && max(t[l], t[r])+d<=t[pos]) return 2; return 1; } return lassu(l, r, d); } /* int main() { int N; vector<int> P; cin >> N; for (int i=0; i<N; i++) { int x; cin >> x; P.push_back(x); } init(N, P); int q; cin >> q; while (q--) { int l, r, d; cin >> l >> r >> d; cout << max_towers(l, r, d) << "\n"; } return 0; } */ /* 7 1 2 6 4 5 3 7 3 1 5 1 1 5 2 1 5 3 */

Compilation message (stderr)

towers.cpp: In function 'void init(int, std::vector<int>)':
towers.cpp:14:19: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   14 |         if (i<pos && t[i]>t[i+1] || i>pos && t[i]>t[i-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...