제출 #1311712

#제출 시각아이디문제언어결과실행 시간메모리
1311712samarthkulkarniLightning Rod (NOI18_lightningrod)C++20
66 / 100
1057 ms207668 KiB
#include <bits/stdc++.h>
using namespace std;

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+10;
pr a[N];

void solution() {
	ll n; cin >> n;

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

	vi avl;


	auto isValid = [&](int i, int j) {
		// jth index has light rod

		return abs(a[i].ff-a[j].ff) <= a[j].ss-a[i].ss;
	};

	for (int i = 0; i < n; i++) {
		if (avl.size() == 0) avl.push_back(i);
		else {

			if (isValid(i, avl.back())) continue;
			else {
				while (avl.size() > 0 && isValid(avl.back(), i)) avl.pop_back();

				avl.push_back(i);
			}
		}
	}



	cout << avl.size() << 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...