33,010
社区成员
发帖
与我相关
我的任务
分享
//Memory:284K Time:261MS
//Language:G++ Result:Accepted
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define max 1000000
struct node{ int t1,t2; } save[max];
int cmp(const void *a,const void *b)
{
return ((node*)a)->t1 - ((node*)b)->t1;
}
int main()
{
int from,to;
int m,n,t,count;
while(scanf("%d",&m)!=EOF)
{
for(n=0;n<m;n++) scanf("%d%d",&save[n].t1,&save[n].t2);
qsort(save,m,sizeof(node),cmp);
t = count = 0;
from = save[0].t1;
to = save[0].t2;
save[m].t2 = save[m].t1 = 1000000000;
for(n=0;n<=m;n++)
{
if(save[n].t1 <= to)
{
if(to < save[n].t2) to = save[n].t2;
}
else
{
count = count + (to - from);
from = save[n].t1;
to = save[n].t2;
}
}
printf("%d\n",count);
}
return 0;
}