#include <bits/stdc++.h>
using namespace std;
static const int BUF = 1 << 20;
static char ibuf[BUF];
static int ipos = 0, ilen = 0;
inline char read() {
if (ipos >= ilen) {
ilen = fread(ibuf, 1, BUF, stdin);
ipos = 0;
if (ilen == 0) return 0;
}
return ibuf[ipos++];
}
inline bool readInt(long long &x) {
char c;
do {
c = read();
if (!c) return false;
} while (c <= ' ');
long long sign = 1;
if (c == '-') {
sign = -1;
c = read();
}
x = 0;
while (c >= '0' && c <= '9') {
x = x * 10 + (c - '0');
c = read();
}
x *= sign;
return true;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
long long N;
readInt(N);
long long x, y;
long long cnt = 0;
long long currentCover = LLONG_MIN; // จุดที่ใช้ครอบคลุมด้านขวา
for (long long i = 0; i < N; i++) {
readInt(x);
readInt(y);
long long L = y + x;
long long R = y - x; // right endpoint
if (i == 0) {
cnt = 1;
currentCover = R;
}
else {
if (L > currentCover) {
cnt++;
currentCover = R;
}
else {
currentCover = min(currentCover, R);
}
}
}
cout << cnt;
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... |