#include <bits/stdc++.h>
using namespace std;
#define name "IO"
#define int long long
const int inf = 1e9;
const int maxn = 1e7 + 5;
int n;
void solve()
{
cin >> n;
vector<pair<int,int>> p;
for(int i = 1; i <= n; i++)
{
int x, y;
cin >> x >> y;
p.push_back({x, y});
}
stack<pair<int,int>> st;
int l = p[0].first, r = p.back().first;
auto check = [&](int x, int y) -> bool{
auto [i, j] = st.top();
int x1 = max(l, x - y), y1 = min(r, x + y);
int x2 = max(l, i - j), y2 = min(r, i + j);
cout << x << " " << y << " " << i << " " << j << " " << x1 << " " << x2 << " " << y1 << " " << y2 << "\n";
if(x1 == x2 && y1 == y2) return y >= j;
if( x1 <= x2 && y1 >= y2 ) return true;
return false;
};
for(int i = 0; i < p.size(); i++)
{
auto [x, y] = p[i];
bool ok = 0;
while(true)
{
if(st.size())
{
if(check(x, y))
{
ok = 1;
st.pop();
}
else break;
}
else break;
}
if(st.empty() || ok) st.push({x, y});
}
cout << st.size() << "\n";
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
clock_t start = clock();
int t = 1;
while(t--) solve();
std::cerr << "Time: " << clock() - start << "ms\n";
return 0;
}
# | 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... |