Submission #739806

#TimeUsernameProblemLanguageResultExecution timeMemory
739806MODDILightning Rod (NOI18_lightningrod)C++17
40 / 100
2085 ms184236 KiB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
typedef long long ll;
typedef pair<long long, long long> pll;
typedef pair<int,int> pii;
typedef vector<long long> vl;
typedef vector<int> vi;
int n;
vector<pii> arr;
int main(){
	cin>>n;
	arr.resize(n);
	priority_queue<pii> pq;
	for(int i = 0; i < n; i++){
		cin>>arr[i].first>>arr[i].second;
		pq.push(mp(arr[i].second, i));
	}
	bool vis[n];
	memset(vis, false, sizeof vis);
	int ans = 0;
	while(!pq.empty()){
		pii here = pq.top();
		pq.pop();
		if(vis[here.second])	continue;
		else{
			ans++;
			for(int i = here.second + 1; i < n; i++){
				if(vis[i])	continue;
				else if(abs(arr[here.second].first - arr[i].first) <= here.first - arr[i].second){
					vis[i] = true;
				}
				else
					continue;
			}
			for(int i = here.second-1; i >= 0; i--){
				if(vis[i])	continue;
				else if(abs(arr[here.second].first - arr[i].first) <= here.first - arr[i].second){
					vis[i] = true;
				}
				else
					continue;
			}
		}
	}
	cout<<ans<<endl;
	return 0;
}
#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...