Cod sursa(job #1577629)

Utilizator popasergiu99Popa Sergiu-Nicolae popasergiu99 Data 23 ianuarie 2016 17:00:08
Problema Text Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#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();

}