Pagini recente » Cod sursa (job #1220629) | Cod sursa (job #2429145) | Istoria paginii runda/bulangandit8 | Cod sursa (job #1280183) | Cod sursa (job #1577629)
#include <iostream>
#include <fstream>
using namespace std;
//se putea si sa vedem care intervale sunt incluse in altele si pe cele mari sa scadem (max-min) si sa adunam.
int main()
{
ifstream f("linterv.in");
ofstream g("linterv.out");
int i,j,t,l,n ,k,ok,m=0;
long int mi,ma,o,r[5000],aux;
f>>t;
struct Interval
{
long int min, max;
}a[i];
for (j=0;j<t;j++)
{
f>>n;
for (i=0;i<n;i++)
f>>a[i].min>>a[i].max;
}
for (l=0;l<t;l++)
{
k=-1;
mi=a[0].min;
ma=a[0].max;
for (i=1;i<n;i++)
{
if (a[i].min<mi)
mi=a[i].min;
if (a[i].max<mi)
mi=a[i].max;
if (a[i].min>ma)
ma=a[i].min;
if (a[i].max>ma)
ma=a[i].max;
}
for (o=mi;o<=ma;o++)
{
for (i=0;i<n;i++)
{
if ((o>=a[i].min)&&(o<=a[i].max))
{
k++;
r[k]=o;
}
}
}
for (i=0;i<k-1;i++)
for (j=i+1;j<k;j++)
{
if (r[i]>r[j])
{aux=r[i];
r[i]=r[j];
r[j]=aux;}
}
m=0;
for (i=0;i<k-1;i++)
{
if (r[i]!=r[i+1])
{
m++;
if (r[i+1]==(r[i]+2))
m--;
}
}
g<<m<<endl;
}
g.close();
}