給定 N 個樁的坐標 (x, y),圍欄只沿東西或南北方向,且只在轉彎處有樁。求圍欄總長度。即:給定一組點,它們構成若干條水平/垂直線段,線段端點在給定點集中,且每個點是恰好兩條線段的端點(度為 2),形成封閉多邊形(可能多個)。計算所有線段長度之和。
y[2i+1] - y[2i] 到答案。x[2i+1] - x[2i] 到答案。
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
while (cin >> n) {
map> x2ys, y2xs;
for (int i=0; i> x >> y;
x2ys[x].push_back(y);
y2xs[y].push_back(x);
}
long long ans = 0;
for (auto &kv : x2ys) {
auto &ys = kv.second;
sort(ys.begin(), ys.end());
for (size_t i=0; i+1