Cod sursa(job #3252228)

Utilizator Radu_GrigorieGrigorie Radu Stefan Radu_Grigorie Data 28 octombrie 2024 21:13:50
Problema Aprindere Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("linterv.in");
ofstream fout("linterv.out");
struct nr
{
    int x;
    int y;
};
nr v[5005], w[5005];
bool cmp(nr a, nr b)
{
    return a.x<b.x||a.x==b.x&&a.y<b.y;
}
int main()
{
    int t, n;
    long long sum;
    fin >> t;
    for(int q=1; q<=t; q++)
    {
        fin >> n;
        sum=0;
        for(int i=1; i<=n; i++)
        {
            fin >> v[i].x >> v[i].y;
        }
        sort(v+1, v+n+1, cmp);
        ///for(int i=1; i<=n; i++)
        ///{
            ///fout << v[i].x <<" "<< v[i].y << "\n";
        ///}
        int ii=0;
        for(int i=1; i<=n; i++)
        {
            bool ok=1, gasit=0;
            for(int j=1; j<=ii; j++)
            {
                if(v[i].x<=w[j].y)
                {
                    ok=0;
                    if(v[i].y>w[j].y)
                    {
                        sum+=v[i].y-w[j].y;
                        w[j].y = v[i].y;
                    }
                    if(v[i].x<w[j].x)
                    {
                        sum+=w[j].x-v[i].x;
                        w[j].x = v[i].x;
                    }
                }
            }
            if(ok==1)
            {
                ii++;
                sum+=(v[i].y-v[i].x);
                w[ii].y = v[i].y;
                w[ii].x = v[i].x;
            }
        }
        fout << sum << "\n";
    }

    return 0;
}