Submission #1022877

# Submission time Handle Problem Language Result Execution time Memory
1022877 2024-07-14T07:01:03 Z vjudge1 Radio Towers (IOI22_towers) C++17
0 / 100
4000 ms 528192 KB
#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> pii;

const int maxn = 1e5 + 100;

int n;
int a[maxn];
int t[maxn];
int dp[maxn];
vector<pii> g[maxn];
int l[maxn];
int r[maxn];
int pref[maxn];

void upd(int i, int x){
	for(; i <= n; i |= (i + 1)) t[i] = max(t[i], x);
}

int get(int i){
	int res = 0;
	for(; i > 0; i = (i & (i + 1)) - 1) res = max(res, t[i]);
	return res;
}

void init(int N, std::vector<int> H){
	n = N; 
	for(int i = 1; i <= n; i++){
		a[i] = H[i-1];
	}
	for(int i = 1; i <= n; i++){
		pref[i] = pref[i-1];
		if(a[i] > min(a[i+1], a[i-1])) pref[i]++;
	}
}

int max_towers(int L, int R, int D){
	L++; R++;
	if(D == 1){
		int ans = 1;
		if(L + 1 < R) ans += pref[R-1] - pref[L];
		return ans;
	}
	for(int i = 1; i <= n; i++){
		t[i] = 0;
		g[i].clear();
	}
	vector<int> v;
	for(int i = L; i <= R; i++){
		while(v.size() && a[v.back()] <= a[i]) v.pop_back();
		v.push_back(i);
		l[i] = L - 1;
		for(int tl = 0, tr = v.size() - 1; tl <= tr;){
			int mid = (tl + tr) >> 1;
			if(a[v[mid]] - D < a[i]) tr = mid - 1;
			else tl = mid + 1, l[i] = v[mid];
		}
	}
	v.clear();
	for(int i = R; i >= L; i--){
		while(v.size() && a[v.back()] <= a[i]) v.pop_back();
		v.push_back(i);
		r[i] = R + 1;
		for(int tl = 0, tr = v.size() - 1; tl <= tr;){
			int mid = (tl + tr) >> 1;
			if(a[v[mid]] - D < a[i]) tr = mid - 1;
			else tl = mid + 1, r[i] = v[mid];
		}
	}
	int ans = 0;
	for(int i = L; i <= R; i++){
		for(auto [p, x]: g[i]){
			upd(p, x);
		}
		dp[i] = get(l[i]) + 1;
		g[r[i]].push_back({i, dp[i]});
		ans = max(ans, dp[i]);
	}
	return ans;
}
# Verdict Execution time Memory Grader output
1 Execution timed out 4096 ms 528192 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB Output is correct
2 Correct 2 ms 2648 KB Output is correct
3 Correct 2 ms 2648 KB Output is correct
4 Correct 1 ms 2648 KB Output is correct
5 Correct 2 ms 2648 KB Output is correct
6 Correct 1 ms 2648 KB Output is correct
7 Correct 1 ms 2648 KB Output is correct
8 Correct 2 ms 2648 KB Output is correct
9 Correct 1 ms 2648 KB Output is correct
10 Correct 2 ms 2900 KB Output is correct
11 Correct 1 ms 2648 KB Output is correct
12 Correct 1 ms 2648 KB Output is correct
13 Incorrect 2 ms 2648 KB 1st lines differ - on the 1st token, expected: '1', found: '855'
14 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB Output is correct
2 Correct 2 ms 2648 KB Output is correct
3 Correct 2 ms 2648 KB Output is correct
4 Correct 1 ms 2648 KB Output is correct
5 Correct 2 ms 2648 KB Output is correct
6 Correct 1 ms 2648 KB Output is correct
7 Correct 1 ms 2648 KB Output is correct
8 Correct 2 ms 2648 KB Output is correct
9 Correct 1 ms 2648 KB Output is correct
10 Correct 2 ms 2900 KB Output is correct
11 Correct 1 ms 2648 KB Output is correct
12 Correct 1 ms 2648 KB Output is correct
13 Incorrect 2 ms 2648 KB 1st lines differ - on the 1st token, expected: '1', found: '855'
14 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 543 ms 4184 KB 1st lines differ - on the 1st token, expected: '11903', found: '24057'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 4053 ms 266648 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB Output is correct
2 Correct 2 ms 2648 KB Output is correct
3 Correct 2 ms 2648 KB Output is correct
4 Correct 1 ms 2648 KB Output is correct
5 Correct 2 ms 2648 KB Output is correct
6 Correct 1 ms 2648 KB Output is correct
7 Correct 1 ms 2648 KB Output is correct
8 Correct 2 ms 2648 KB Output is correct
9 Correct 1 ms 2648 KB Output is correct
10 Correct 2 ms 2900 KB Output is correct
11 Correct 1 ms 2648 KB Output is correct
12 Correct 1 ms 2648 KB Output is correct
13 Incorrect 2 ms 2648 KB 1st lines differ - on the 1st token, expected: '1', found: '855'
14 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 4096 ms 528192 KB Time limit exceeded
2 Halted 0 ms 0 KB -