제출 #1251495

#제출 시각아이디문제언어결과실행 시간메모리
1251495raysh07송신탑 (IOI22_towers)C++17
27 / 100
4046 ms1564 KiB
#include "towers.h" #include <bits/stdc++.h> using namespace std; #define INF (int)1e9 int n; vector <int> a; void init(int N, vector<int> H) { n = N; a.resize(n); for (int i = 0; i < n; i++){ a[i] = H[i]; } } int max_towers(int l, int r, int d) { int ans = 1; int best = INF; int mx = -INF; for (int i = l; i <= r; i++){ if (max(a[i], best) + d <= mx){ ans++; best = a[i]; mx = -INF; } else { if (a[i] < best){ best = a[i]; mx = -INF; } else { mx = max(mx, a[i]); } } } return ans; } // int brute(int l, int r, int d){ // vector <int> dp(n); // int ans = 0; // for (int i = l; i <= r; i++){ // dp[i] = 1; // for (int j = l; j < i; j++){ // bool good = false; // for (int k = j; k <= i; k++){ // good |= a[k] >= max(a[i], a[j]) + d; // } // if (good){ // dp[i] = max(dp[i], dp[j] + 1); // } // } // ans = max(ans, dp[i]); // } // return ans; // } // mt19937_64 RNG(chrono::steady_clock::now().time_since_epoch().count()); // void solve(){ // // int n; cin >> n; // int n = 1 + RNG() % 3; // vector <int> A(n); // for (int i = 0; i < n; i++){ // // cin >> A[i]; // A[i] = 1 + RNG() % 20; // } // init(n, A); // // int q; cin >> q; // int q = 10; // while (q--){ // // int l, r, d; cin >> l >> r >> d; // int l = RNG() % n; // int r = RNG() % n; // if (l > r) swap(l, r); // int d = 1 + RNG() % 10; // if (max_towers(l, r, d) != brute(l, r, d)){ // cout << "WA\n"; // cout << n << "\n"; // for (int i = 0; i < n; i++){ // cout << A[i] << " \n"[i + 1 == n]; // } // cout << l << " " << r << " " << d << "\n"; // cout << max_towers(l, r, d) << " " << brute(l, r, d) << "\n"; // exit(0); // } // } // } // int main(){ // int t; cin >> t; // while (t--){ // solve(); // } // return 0; // }
#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...