Pagini recente » Cod sursa (job #982583) | Cod sursa (job #184847) | Cod sursa (job #1984774) | Cod sursa (job #1043804) | Cod sursa (job #137375)
Cod sursa(job #137375)
#include <stdio.h>
#include <stdlib.h>
int n, s1;
typedef struct
{
int x, y;
} interval;
interval a[100000], b[100000];
int cmp(const void *a, const void *c)
{
int i = *(int*)a, j = *(int*)c;
if (b[i].x == b[j].x) return b[j].y - b[i].y;
else return b[i].x - b[j].x;
}
int main()
{
freopen("heavymetal.in","r",stdin);
freopen("heavymetal.out","w",stdout);
int i, ord[100000];
interval x;
scanf("%d",&n);
for (i = 0; i < n; i++){ scanf("%d %d",&b[i].x, &b[i].y); ord[i] = i;}
qsort(ord,n,sizeof(int),cmp);
for (i = 1; i <= n; i++) a[i] = b[ord[i-1]];
x = a[1]; s1 = x.y - x.x;
for (i = 2; i <= n; i++)
{
if (a[i].x >= x.y)
{
x = a[i];
s1 += (x.y - x.x);
}
}
printf("%d\n",s1);
return 0;
}