diff --git a/BZOJ/1604/1604.cpp b/BZOJ/1604/1604.cpp new file mode 100644 index 00000000..590fa179 --- /dev/null +++ b/BZOJ/1604/1604.cpp @@ -0,0 +1,62 @@ +#include +#include +#include + +using std::cin; +using std::cout; +const char endl = '\n'; + +const int N = 1e5 + 5; + +int n, c, fa[N], cnt[N], ans, max; +std::pair points[N]; +std::set> set; + +int find(int x) { + return fa[x] == x ? x : fa[x] = find(fa[x]); +} + +inline void merge(int x, int y) { + fa[find(x)] = find(y); +} + +int main() { + std::ios::sync_with_stdio(false); + cin.tie(nullptr); + + cin >> n >> c; + + for (int i = 1, x, y; i <= n; i++) { + cin >> x >> y; + + points[i] = std::make_pair(x + y, x - y); + fa[i] = i; + } + + std::sort(points + 1, points + 1 + n); + + set.insert(std::make_pair(points[1].second, 1)); + for (int i = 2, l = 1; i <= n; i++) { + while (points[i].first - points[l].first > c) { + set.erase(std::make_pair(points[l].second, l)); + l++; + } + + auto it = set.lower_bound(std::make_pair(points[i].second, 0)); + + if (it != set.end() && it->first - points[i].second <= c) merge(i, it->second); + if (it != set.begin() && points[i].second - (--it)->first <= c) merge(i, it->second); + + set.insert(std::make_pair(points[i].second, i)); + } + + for (int i = 1; i <= n; i++) { + if (find(i) == i) ans++; + + max = std::max(max, ++cnt[find(i)]); + } + + cout << ans << ' ' << max << endl; + + return 0; +} diff --git a/BZOJ/1604/data/1.in b/BZOJ/1604/data/1.in new file mode 100644 index 00000000..abdfbda6 --- /dev/null +++ b/BZOJ/1604/data/1.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07f518c5d328e6ef1704d1fffef6e2cf64fcb0df1267a510e70c6eafb54575b9 +size 1391895 diff --git a/BZOJ/1604/data/1.out b/BZOJ/1604/data/1.out new file mode 100644 index 00000000..9f0a4b30 --- /dev/null +++ b/BZOJ/1604/data/1.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6d8055b01335bb01483514b4197385aeca5b7459b4d2e938e882599f3722c97 +size 10 diff --git a/BZOJ/1604/data/10.in b/BZOJ/1604/data/10.in new file mode 100644 index 00000000..a4ce0d4f --- /dev/null +++ b/BZOJ/1604/data/10.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd40b6944a71b1c3adcc12cee7edb5235fd0b7b55ec1069868c1b378acc250e1 +size 48953 diff --git a/BZOJ/1604/data/10.out b/BZOJ/1604/data/10.out new file mode 100644 index 00000000..64479b1b --- /dev/null +++ b/BZOJ/1604/data/10.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72d9173c94e35f9308f8fa2ec87a9f683c74d049db5620257b5f6c88ee869a5a +size 8 diff --git a/BZOJ/1604/data/11.in b/BZOJ/1604/data/11.in new file mode 100644 index 00000000..ac7c3c96 --- /dev/null +++ b/BZOJ/1604/data/11.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c55a8f6abd86afac9a3c2f873e8670a39810eb647b9ae0dbfd0392e381d0c36 +size 1745891 diff --git a/BZOJ/1604/data/11.out b/BZOJ/1604/data/11.out new file mode 100644 index 00000000..6931f009 --- /dev/null +++ b/BZOJ/1604/data/11.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0b4a270120c9c6da237ca84c4b5dcb4ac5c80ab26570670ab578f73a5568247 +size 9 diff --git a/BZOJ/1604/data/12.in b/BZOJ/1604/data/12.in new file mode 100644 index 00000000..da0fd130 --- /dev/null +++ b/BZOJ/1604/data/12.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42324d219991afcdb20985b1daaba90b21bbb4d823e5389719b38dd9399f4397 +size 1999996 diff --git a/BZOJ/1604/data/12.out b/BZOJ/1604/data/12.out new file mode 100644 index 00000000..6334612e --- /dev/null +++ b/BZOJ/1604/data/12.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8098a604d1140ab34fc77a3a1949cbe1c9df25f232fbc90fbfd64f91799802a4 +size 9 diff --git a/BZOJ/1604/data/13.in b/BZOJ/1604/data/13.in new file mode 100644 index 00000000..faf12cec --- /dev/null +++ b/BZOJ/1604/data/13.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71fb2d44b95b2a7e66dde4462dfccdcfbe7e1777f66c934d654616691a77e015 +size 22 diff --git a/BZOJ/1604/data/13.out b/BZOJ/1604/data/13.out new file mode 100644 index 00000000..87bb7687 --- /dev/null +++ b/BZOJ/1604/data/13.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:337b794ce718a09a620090d53541c3b4640a64133bbee2188444810cd3169f81 +size 4 diff --git a/BZOJ/1604/data/14.in b/BZOJ/1604/data/14.in new file mode 100644 index 00000000..92e2a3ae --- /dev/null +++ b/BZOJ/1604/data/14.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2b82b4931cee18fbc1668f5b71847db8bd798bd4707e9f21cef6bd4f3c1130f +size 1634049 diff --git a/BZOJ/1604/data/14.out b/BZOJ/1604/data/14.out new file mode 100644 index 00000000..6931f009 --- /dev/null +++ b/BZOJ/1604/data/14.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0b4a270120c9c6da237ca84c4b5dcb4ac5c80ab26570670ab578f73a5568247 +size 9 diff --git a/BZOJ/1604/data/15.in b/BZOJ/1604/data/15.in new file mode 100644 index 00000000..879fa352 --- /dev/null +++ b/BZOJ/1604/data/15.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a729dd7c4b72ed2fd32faa9ca2a5e22746f8a24712bc16a1a004cc2e85deb87 +size 413 diff --git a/BZOJ/1604/data/15.out b/BZOJ/1604/data/15.out new file mode 100644 index 00000000..2dfd7e62 --- /dev/null +++ b/BZOJ/1604/data/15.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5bf18b7493b74d84b50f7e97082641f952e2f5be82ee56803d40fc7eb740156 +size 5 diff --git a/BZOJ/1604/data/2.in b/BZOJ/1604/data/2.in new file mode 100644 index 00000000..cc730c61 --- /dev/null +++ b/BZOJ/1604/data/2.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61c2d08534626b2c79b2ab092f9e185659eda8785c355e9b8ac0f9ff23adb2d6 +size 7795 diff --git a/BZOJ/1604/data/2.out b/BZOJ/1604/data/2.out new file mode 100644 index 00000000..c0084ec5 --- /dev/null +++ b/BZOJ/1604/data/2.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8db15d0acaca3745e0576864326b20457a478d4add5da72a9b103941b09b6e7f +size 7 diff --git a/BZOJ/1604/data/3.in b/BZOJ/1604/data/3.in new file mode 100644 index 00000000..a84bae6f --- /dev/null +++ b/BZOJ/1604/data/3.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc433a94cad76def0f589a07ea1c639f3ba2c913ef70e49bd0474020e9e50028 +size 588772 diff --git a/BZOJ/1604/data/3.out b/BZOJ/1604/data/3.out new file mode 100644 index 00000000..40cc8d89 --- /dev/null +++ b/BZOJ/1604/data/3.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4ae832e32edb7d2183956ee6edd2e42ae487b61db5112a4f1e516fdb3b0e158 +size 8 diff --git a/BZOJ/1604/data/4.in b/BZOJ/1604/data/4.in new file mode 100644 index 00000000..bac848c5 --- /dev/null +++ b/BZOJ/1604/data/4.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b516ea436dca8c2498c435c3e80515d66dcade28192ff49dd2481783ba685eb3 +size 1999996 diff --git a/BZOJ/1604/data/4.out b/BZOJ/1604/data/4.out new file mode 100644 index 00000000..86630e6e --- /dev/null +++ b/BZOJ/1604/data/4.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e17368a9ae3e017f941570d73fce522a20aa0b46437ed0150d728395d55b425 +size 8 diff --git a/BZOJ/1604/data/5.in b/BZOJ/1604/data/5.in new file mode 100644 index 00000000..f04ed7b3 --- /dev/null +++ b/BZOJ/1604/data/5.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3e29b885e81bb2b9440ccf5b59f299451629793d8a46504dee2edab80701b0e +size 1278001 diff --git a/BZOJ/1604/data/5.out b/BZOJ/1604/data/5.out new file mode 100644 index 00000000..0666dc3d --- /dev/null +++ b/BZOJ/1604/data/5.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ff7984640cc5f819ec9c57c257e0d9cfc94be33fc0f37e6dff1c160404d0149 +size 8 diff --git a/BZOJ/1604/data/6.in b/BZOJ/1604/data/6.in new file mode 100644 index 00000000..6d16d891 --- /dev/null +++ b/BZOJ/1604/data/6.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e609bd3739d9a047d400a0b56a2530c4e3c95540907209e9e97aff5fb8da361 +size 1999993 diff --git a/BZOJ/1604/data/6.out b/BZOJ/1604/data/6.out new file mode 100644 index 00000000..4e923e1a --- /dev/null +++ b/BZOJ/1604/data/6.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c91d84234e1d81b9866a34fc68d91686dbff28c4a74813a92ec2c4e22904e70c +size 9 diff --git a/BZOJ/1604/data/7.in b/BZOJ/1604/data/7.in new file mode 100644 index 00000000..e1a118c8 --- /dev/null +++ b/BZOJ/1604/data/7.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7561494c33da86ce82041941e53a5d45bd36de65eb25ced7a69a7a4fc42a02fe +size 353235 diff --git a/BZOJ/1604/data/7.out b/BZOJ/1604/data/7.out new file mode 100644 index 00000000..eb9411eb --- /dev/null +++ b/BZOJ/1604/data/7.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38c73c3a64a67c2bdc0671bbd3b3d224c204a8d015f72fe6757b9a2bf1669c69 +size 8 diff --git a/BZOJ/1604/data/8.in b/BZOJ/1604/data/8.in new file mode 100644 index 00000000..44efca98 --- /dev/null +++ b/BZOJ/1604/data/8.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:558b281c7fee7ce9797938e1fe4039eabd5827277fc6cec6a9c113c8955824b5 +size 63 diff --git a/BZOJ/1604/data/8.out b/BZOJ/1604/data/8.out new file mode 100644 index 00000000..a39b1fcc --- /dev/null +++ b/BZOJ/1604/data/8.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e4396f882a69cd2d4e57defe8da0bff12f3b7d1c856753372c3dc574b460d2f +size 5 diff --git a/BZOJ/1604/data/9.in b/BZOJ/1604/data/9.in new file mode 100644 index 00000000..920a37a4 --- /dev/null +++ b/BZOJ/1604/data/9.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a3106557044dd5c3fb62ee40797190c2a29461634dd08238dfa8f2a21842490 +size 1999995 diff --git a/BZOJ/1604/data/9.out b/BZOJ/1604/data/9.out new file mode 100644 index 00000000..70e9c3ed --- /dev/null +++ b/BZOJ/1604/data/9.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e1d6056f0c4189d2b99785340b15ee11daf515566c01d0512f4833ec036de24 +size 8