Submission #1280515

#TimeUsernameProblemLanguageResultExecution timeMemory
1280515nicolo_010Radio Towers (IOI22_towers)C++20
11 / 100
4064 ms2988 KiB
#include <bits/stdc++.h> #include "towers.h" using namespace std; using ll = long long; using pii = pair<int, int>; vector<int> h; void init(int N, vector<int> H) { h = H; } bool cmp(int a, int b) { return h[a] < h[b]; } int max_towers(int l, int r, int d) { int n = h.size(); vector<int> L(n, 0), R(n, n-1); for (int i=0; i<n; i++) { for (int j=i-1; j>=0; j--) { if (h[j] >= h[i]+d) { L[i] = j; break; } } for (int j=i+1; j<n; j++) { if (h[j] >= h[i]+d) { R[i] = j; break; } } } vector<int> towers; for (int i=l; i <= r; i++) { towers.push_back(i); } sort(towers.begin(), towers.end(), cmp); int m = towers.size(); vector<bool> leased(n, 0); int cnt=0; for (int k=0; k<m; k++) { bool can = true; int i = towers[k]; for (int j=L[i]; j<i; j++) { if (leased[j]) can = false; } for (int j = R[i]; j>i; j--) { if (leased[j]) can= false; } if (can) { leased[i] = true; cnt++; } } return cnt; }
#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...