题意:n个客人坐成一个圈,每个人希望自己左边有l个空位置,右边有r个空位置。问你最少要几个位置。
思路:因为一个人的右边是他右边人的左边,可以重叠,所以我们需要保证尽可能重叠。排下序即可。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[100005],b[100005];
int main()
{
int n;cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i]>>b[i];
}
sort(a,a+n);sort(b,b+n);
long long ans=0;
for(int i=0;i<n;i++)
{
ans+=max(a[i],b[i])+1;
}
cout<<ans<<endl;
return 0;
}