Cod sursa(job #1899392)

Utilizator alexandrutarcanTarcan Alexandru alexandrutarcan Data 2 martie 2017 18:27:02
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("reactivi.in");
ofstream fout("reactivi.out");
int n,tempmin,tempmax,i,nr,j;
struct reactiv
{
    int st,dr;
};
reactiv r[8002],frigider[8002];
int nrfrigidere,ok;
bool comp(reactiv a,reactiv b)
{
    if(a.st!=b.st)
        return a.st<b.st;
    return a.dr>b.dr;
}
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>r[i].st>>r[i].dr;
    sort(r+1,r+n+1,comp);
  //  for(i=1;i<=n;i++)
    //    fout<<r[i].st<<' '<<r[i].dr<<'\n';
    for(i=1;i<=n;i++)
    {
        ok=0;
        for(j=1;j<=nrfrigidere;j++)
            if((r[i].st>=frigider[j].st && r[i].st<=frigider[j].dr) || (r[i].dr>=frigider[j].st && r[i].dr<=frigider[j].dr))
            {
                frigider[j].st=max(frigider[j].st,r[i].st);
                frigider[j].dr=min(frigider[j].dr,r[i].dr);
                ok=1;
            }
        if(ok==0)
        {
            nrfrigidere++;
            frigider[nrfrigidere].st=r[i].st;
            frigider[nrfrigidere].dr=r[i].dr;
        }
    }
    fout<<nrfrigidere;
    return 0;
}