제출 #123091

#제출 시각아이디문제언어결과실행 시간메모리
123091mechfrog88Lightning Rod (NOI18_lightningrod)C++14
0 / 100
2075 ms187052 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#pragma GCC optimize("unroll-loops,no-stack-protector")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
 
using namespace __gnu_pbds;
using namespace std;
 
template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
 
typedef long long ll;
typedef long double ld;	

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	ll n;
	cin >> n;
	vector <pair<ll,ll>> arr(n);
	for (int z=0;z<n;z++){
		cin >> arr[z].first >> arr[z].second;
		arr[z].first -= arr[z].second;
		arr[z].second += arr[z].first;
	}
	stack <pair<ll,ll>> s;
	for (int z=0;z<n;z++){
		if (s.empty()){
			s.push(arr[z]);
		}
		pair<ll,ll> s1 = s.top();
		if (s1.first <= arr[z].first && arr[z].second <= s1.second) continue;
		else{
			while (arr[z].first <= s1.first && s1.second <= arr[z].second){
				s.pop();
				if (s.size() == 0) break;
			}
			s.push(arr[z]);
		}
	}
	cout << s.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...