永发信息网

C语言编程题 在X轴上给你一些线段,问被这些线段覆盖的区间长。

答案:1  悬赏:60  手机版
解决时间 2021-02-21 11:11
输入

每个样例的第一行是一个整数K(K≤10000),表示线段的个数,如果K=0表示输入结束。以后的K行,每行为一个线段的左右端点x1,x2,(0 ≤ x1
< x2 ≤ 1,000,000,000)。

输出

每行输出一个样例的结果。

样例输入
2
1 2
2 3
3
1 3
0 2
5 6
0
样例输出
2
4
最佳答案
#include
#include
#include 
#define N 10000
typedef struct{
    int head;
    int nail;
} NODE;
NODE a[N];
int n;
int cmp(const void *a,const void *b){
    return ((NODE*)a)->head - ((NODE*)b)->head;
}
int main ()
{
    scanf("%d",&n);
    while(n!=0){
         int i;
        for(i=0;i             scanf("%d%d",&a[i].head,&a[i].nail);
        qsort(a,n,sizeof(a[0]),cmp);
        for(i=0;i             while(a[i].nail>a[i+1].head){
                if(a[i].nail>a[i+1].nail){
                    a[i+1].head = a[i].head,a[i+1].nail = a[i].nail;
                    //a[i].nail = a[i].head;
                }else{
                    a[i+1].head = a[i].head;
                }
                a[i].nail = a[i].head;
                i++;
            }
        }
        int sum = 0;
        for(i=0;i             printf("%d\n",sum);
        scanf("%d",&n);
    }
  return 0;
}这样就可以了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
黄梅戏?歌词
天天酷跑多人口号 不要骂人的 要有个性
河池市第一人民医院医疗美容科地址有知道的么
【寒假活动】寒假活动计划 作文
农村信用社卡里的定期存款可以转为合期必须要
北京电子科技职业学院培训中心在哪里啊,我有
动画片中常出现的英文loading...是什么意思
四川龙门山地震带最近为什么异常的活跃,地震
领航琴行我想知道这个在什么地方
小企业股权分配
为什么进了永恒之塔后,鼠标点不了
泰安市岱岳区老干部活动中心地址在什么地方,
下列情形中,可作为合同履行中止条件的有()。
追随者哈里森琼斯怎么获得 大师遗物猎人攻略
好时之吻囍糖世家地址在哪,我要去那里办事
推荐资讯
做引体向上时人的上肢肌肉是怎样活动的
下PS时电脑桌面文件所有的格式被更改?之后无
raid0 跟 raid1 比各有哪些优缺点?
谁可以给我一个微信号和密码,我没有手机号。
求奕乐贵州麻将外挂,各种理由先交钱之类的就
生源地助学贷款的钱打到哪?
万业世纪广场北门(人行门)怎么去啊,有知道地
阅读下面的文字.完成下题. 最近.一个科研小组
移动拨打多少秒才会提示你打的电话无人接听
我想做铝合金推拉门要几个冲孔模具。哪有多少
新疆海盛建筑安装有限责任公司在什么地方啊,
每天给腿拉拉筋有什么好处
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?