Pagini recente » Cod sursa (job #1580831) | Cod sursa (job #1606729) | Cod sursa (job #2483124) | Cod sursa (job #628317) | Cod sursa (job #268357)
Cod sursa(job #268357)
#include<iostream.h>
#include<stdio.h>
#define max(a,b) (a>b?a:b)
#define min(a,b) (a>b?b:a)
FILE *f=fopen("linterv.in","r"),*g=fopen("linterv.out","w");
struct inter{int x,y;};
inter a[5005],aux;
int maxx,minn,i,j,n,t1,t;
long lung;
void qsort(int st,int dr)
{
int i=st,j=dr,mij=a[(st+dr)/2].x;
do
{
while(i<=j&&a[i].x<mij) i++;
while(i<=j&&a[j].x>mij) j--;
if(i<=j)
{
aux=a[i];a[i]=a[j];a[j]=aux;
i++;j--;
}
}while(i<=j);
if(i<dr) qsort(i,dr);
if(st<j) qsort(st,j);
}
int main()
{
fscanf(f,"%d",&t);
for(;t;t--)
{
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d%d",&a[i].x,&a[i].y);
qsort(1,n);
lung=0;i=0;maxx=a[1].y;
while(i<n)
{
i++;t1=0;
minn=a[i].x;maxx=a[i].y;
while(a[i].x<=maxx&&a[i].x!=a[i].y)
{
maxx=max(maxx,a[i].y);
minn=min(minn,a[i].x);
t1=1;i++;
}
if(t1) i--;
lung+=maxx-minn;
}
fprintf(g,"%ld\n",lung);
}
return 0;
}