Submission #771427

#TimeUsernameProblemLanguageResultExecution timeMemory
771427PurpleCrayonRadio Towers (IOI22_towers)C++17
27 / 100
4067 ms1572 KiB
#include "towers.h"
#include <bits/stdc++.h>
using namespace std;

#define sz(v) int(v.size())
#define ar array
typedef long long ll;
const int N = 1e5+10, MOD = 1e9+7;
const ll INF = 1e18+10;

int n, a[N];

void init(int _n, vector<int> H) {
    n = _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 cur = MOD;
    bool small = 1;
    for (int i = l; i <= r; i++) {
        if (small) {
            if (a[i] <= cur) {
                cur = a[i];
            } else {
                if (a[i] >= cur + d) {
                    cur = a[i];
                    small ^= 1;
                }
            }
        } else {
            if (a[i] >= cur) {
                cur = a[i];
            } else {
                if (a[i] <= cur - d) {
                    cur = a[i];
                    small ^= 1;
                    ans++;
                }
            }
        }
    }
    return ans;
}
#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...