Submission #674013

#TimeUsernameProblemLanguageResultExecution timeMemory
674013sudheerays123Lightning Rod (NOI18_lightningrod)C++17
66 / 100
1494 ms262144 KiB
#include<bits/stdc++.h> using namespace std; #define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); #define ll long long int const ll N = 100+5 , INF = 1e18 , MOD = 1e9+7; bool inside(ll x1 , ll y1 , ll x2 , ll y2){ return (abs(x2-x1) <= (y2-y1)); } void solve(){ ll n; cin >> n; vector<pair<ll,ll>> a(n+5); for(ll i = 1; i <= n; i++) cin >> a[i].first >> a[i].second; vector<ll> left(n+5) , right(n+5); for(ll i = 1; i <= n; i++){ for(ll j = i; j >= 1; j--){ if(inside(a[j].first,a[j].second,a[i].first,a[i].second)) left[i] = j; else break; } } for(ll i = 1; i <= n; i++){ for(ll j = i; j <= n; j++){ if(inside(a[j].first,a[j].second,a[i].first,a[i].second)) right[i] = j; else break; } } set<pair<ll,ll>> s; for(ll i = 1; i <= n; i++) s.insert(make_pair(a[i].second,i)); ll ans = 0; while(s.size()){ auto it = s.end(); it--; pair<ll,ll> u = (*(it)); ans++; for(ll i = u.second+1; i <= right[u.second]; i++){ if(s.count(make_pair(a[i].second,i))){ s.erase(s.find(make_pair(a[i].second,i))); } } for(ll i = u.second-1; i >= left[u.second]; i--){ if(s.count(make_pair(a[i].second,i))){ s.erase(s.find(make_pair(a[i].second,i))); } } s.erase(it); } cout << ans; } int main(){ fast; ll tc = 1; // cin >> tc; while(tc--) solve(); 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...