Submission #743789

#TimeUsernameProblemLanguageResultExecution timeMemory
743789vjudge1Lightning Rod (NOI18_lightningrod)C++17
100 / 100
491 ms205836 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long bool check(ll x1, ll x2, ll y1, ll y2) { return abs(x1 - x2) <= y1 - y2; } inline void read(long long &x) { x = 0; char ch = getchar_unlocked(); while (ch & 16) { x = (x << 3) + (x << 1) + (ch & 15); ch = getchar_unlocked(); } } int main() { ll n; ll a, b; stack<pair<ll, ll>> st; read(n); for (int i = 0; i < n; ++i) { read(a); read(b); if (!st.empty() && check(st.top().first, a, st.top().second, b)) // old cover new { continue; } while (!st.empty() && check(a, st.top().first, b, st.top().second)) // new cover old { st.pop(); } st.push({a,b}); } cout << st.size(); }
#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...