# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
701785 | lto5 | Lightning Rod (NOI18_lightningrod) | C++14 | 2094 ms | 6628 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
void debug_out() { cerr << '\n'; }
template <typename Head, typename... Tail>
void debug_out(Head H, Tail... T) {
cerr << " " << H;
debug_out(T...);
}
#define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
namespace sub1 {
void solve(int n) {
vector<pair<int, int>> vt;
stack<int> st;
while (n--) {
int x, y;
cin >> x >> y;
vt.emplace_back(x + y, y - x);
}
sort(vt.begin(), vt.end());
for (auto [x, y] : vt) {
while (!st.empty() && st.top() <= y) {
st.pop();
}
st.push(y);
}
cout << st.size();
}
} // namespace sub1
namespace sub2 {
const int N = 1e7 + 5;
pair<int, int> st[N];
int max_y[N];
void solve(int n) {
int top = 0;
while (n--) {
int x, y;
cin >> x >> y;
/*
/\ ___
/ \ ---> |
/ \ |
*/
// rotate 45 degrees
int nx = x + y;
int ny = x - y;
x = nx, y = ny;
debug(x, y);
while (top > 0 && st[top].first <= x) {
top--;
}
// debug(top);
if (top > 0 && max_y[top] >= y) {
continue;
}
// debug('.', top);
st[++top] = {x, y};
max_y[top] = max(max_y[top - 1], y);
}
cout << top;
}
} // namespace sub2
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
#define task "a"
if (fopen(task ".inp", "r")) {
freopen(task ".inp", "r", stdin);
freopen(task ".out", "w", stdout);
}
int n;
cin >> n;
// if (n <= 1e6) {
// sub1::solve(n);
// return 0;
// }
sub2::solve(n);
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |