Cod sursa(job #2049476)

Utilizator Consti.001FMI Dranca Constantin Consti.001 Data 27 octombrie 2017 11:49:06
Problema A+B Scor 0
Compilator cpp Status done
Runda Lista lui wefgef Marime 1.1 kb
#include<fstream>
#include<algorithm>
#include<iostream>
#include <vector>
using namespace std;

ifstream f("data.in");
ofstream g("data.out");


struct interval
{
    int left,right;

};

bool cmp(interval a, interval b)
{
    return a.left<b.left;
}
int main()
{
    int n;
    f>>n;

    interval lista[n+1];
    for(int i=0;i<n;++i)
    {
        f>>lista[i].left>>lista[i].right;
    }
    sort(lista,lista+n,cmp);

    vector <interval> multimi[n];
    int m=0;

    for(int i=0;i<n;++i)
    {
        bool ok=false;
        for(int j=0;j<m&&ok==false;++j)
           if(multimi[j][multimi[j].size()-1].right<lista[i].left)
            {
                multimi[j].push_back(lista[i]);
                ok=true;
            }
        if(ok==false)
        {
            multimi[m].push_back(lista[i]);
            ++m;
        }
    }
    for(int i=0;i<m;++i)
    {
        g<<"Multimea "<<i+1<<": ";
        for(int j=0;j<multimi[i].size();++j)
            g<<"("<<multimi[i][j].left<<","<<multimi[i][j].right<<"); ";
        g<<"\n";
    }
    return 0;
}