http://codeforces.com/problemset/problem/1060/D
要開(kāi)一個(gè)宴會(huì)支子,可以用若干椅子擺成若干環(huán)。每個(gè)賓客因?yàn)楸容^害羞所以要求左手邊有 個(gè)空位,右手邊有
個(gè)空位牡直,問(wèn)怎么擺桌才能使用的椅子最少,輸出最少的椅子數(shù)。
題解
畫(huà)一畫(huà)圖會(huì)發(fā)現(xiàn)擺桌的方案相當(dāng)于調(diào)換一些人的 和和
王滤,并且是可以瞎比調(diào)換的,所以排序一下把
加起來(lái)就做完了滓鸠。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int, int> pii;
int rint() {
int n, c, sgn = 0;
while ((c = getchar()) < '-');
if (c == '-') n = 0, sgn = 1;
else n = c - '0';
while ((c = getchar()) >= '0') {
n = 10 * n + c - '0';
}
return sgn ? -n : n;
}
const int N = 1e5 + 10;
int n;
int l[N], r[N];
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) {
l[i] = rint();
r[i] = rint();
}
ll ans = n;
sort(l, l + n);
sort(r, r + n);
for (int i = 0; i < n; i++) {
ans += max(l[i], r[i]);
}
cout << ans << endl;
return 0;
}