Description:
有 N N N个人去参加聚餐,由于他们都是自闭症患者,要求左右分别有至少 l i l_i li和 r i r_i ri个空座位。现在请你根据这 N N N组 l i l_i li和 r i r_i ri安排桌子和椅子,使得所用椅子的数量最少。假设桌子可以无限多。
Input:
第一行一个正整数 N N N,代表 N N N个人,接下来的 N N N行,每行两个数 l i , r i l_i,r_i li,ri,代表编号为 i i i的人左右至少需要空出的椅子数量。
Output:
输出椅子的最少数量。
Sample Input:
3
1 1
1 1
1 1
4
1 2
2 1
3 5
5 3
Sample Output:
6
15
Reference Code:
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a,const void *b) {
return (*(int*)a-*(int*)b);
}
int max(int a,int b){
if (a>=b) return a;
return b;
}
int main(){
int t;
scanf("%d",&t);
int l[t];
int r[t];
for(int i=0;i<t;i++){
scanf("%d%d",&l[i],&r[i]);
}
qsort(l,t,sizeof(l[0]),cmp);
qsort(r,t,sizeof(r[0]),cmp);
int sum=0;
for (int i=0;i<t;i++){
sum+=max(l[i],r[i]);
}
printf("%d\n",sum+t);
}