Submission #1232919

#TimeUsernameProblemLanguageResultExecution timeMemory
1232919thelegendary08Radio Towers (IOI22_towers)C++17
14 / 100
259 ms2360 KiB
#include "towers.h"
#include<bits/stdc++.h>
#define vi vector<int>
#define pb push_back
#define f0r(i,n) for(int i = 0; i<n; i++)
#define FOR(i, k, n) for(int i = k; i<n; i++)
#define vout(v) for(auto u : v)cout<<u<<' '; cout<<endl;
using namespace std;

int mxd = -1;
int mx = 0;
vi v, trough, ps;
void init(int N, std::vector<int> v) {
	::v = v;
	f0r(i, N){
		if(v[i] > mx){
			mx = v[i];
			mxd = i;
		}
	}
	trough.resize(N);
	FOR(i, 1, N-1){
		trough[i] = (v[i] < v[i-1] && v[i] < v[i+1]);
	}
	ps.resize(N+1);
	FOR(i, 1, N+1){
		ps[i] = ps[i-1] + trough[i-1];
	}
	// vout(ps);
}

int max_towers(int l, int r, int d) {
	int dist = r - l + 1;
	if(dist <= 2)return 1;
	int ans = 0;
	ans += (v[l] < v[l+1]);
	ans += (v[r-1] > v[r]);
	ans += ps[r] - ps[l+1];
	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...