Submission #1311724

#TimeUsernameProblemLanguageResultExecution timeMemory
1311724samarthkulkarniLightning Rod (NOI18_lightningrod)C++17
66 / 100
1002 ms114228 KiB
#include <bits/stdc++.h>
using namespace std;

#pragma GCC target ("avx2")
#pragma GCC optimize ("O3")
#pragma GCC optimize ("unroll-loops")
#pragma GCC optimize("fast-math")

using ll = int;
#define vi vector<long long>
#define all(x) x.begin(), x.end()
#define endl "\n"
#define pr pair<ll, ll>
#define ff first
#define ss second

void solution();
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    solution();
    return 0;
}

const int N = 1e7;
pr a[N];
ll avl[N+5];


inline bool isValid(int i, int j) {
	return abs(a[i].ff-a[j].ff) <= a[j].ss-a[i].ss;
}

void solution() {
	ll n; cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> a[i].ff >> a[i].ss;
	}


	

	int p = -1;

	for (int i = 0; i < n; i++) {
		if (p == -1) avl[++p] = i;
		else {

			if (isValid(i, avl[p])) continue;

			while (p >= 0 && isValid(avl[p], i)) p--;

			avl[++p] = i;

		}
	}

	cout << p+1 << endl;




}
#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...