336
Enunt
Într-un laborator de analize chimice se utilizează N reactivi. Se ştie că, pentru a evita accidentele sau deprecierea reactivilor, aceştia trebuie să fie stocaţi în condiţii de mediu speciale. Mai exact, pentru fiecare reactiv x, se precizează intervalul de temperatură [minx, maxx] în care trebuie să se încadreze temperatura de stocare a acestuia.
Exemplu
reactivi.in
3 -10 10 -2 5 20 50
reactivi.out
2
Explicație
Sunt necesare 2 frigidere pentru a stoca reactivii.
reactivi.in
4 2 5 5 7 10 20 30 40
reactivi.out
3
Explicație
Sunt necesare 3 frigidere pentru a stoca reactivii.
reactivi.in
5 -10 10 10 12 -20 10 7 10 7 8
reactivi.out
2
Explicație
Sunt necesare 2 frigidere pentru a stoca reactivii.
#include <bits/stdc++.h>
using namespace std;
ifstream cin("reactivi.in");
ofstream cout("reactivi.out");
struct elem
{
int i , j;
};
elem a[8002];
int comp(elem a , elem b)
{
return a.j > b.j || a.j == b.j && a.i < b.i;
}
int n , nr, fr[8002];
int main()
{
cin >> n;
for(int i = 1 ; i <= n ; i++)
{
cin >> a[i].i >> a[i].j;
fr[i] = 1;
}
sort(a + 1 , a+ n + 1 , comp);
for(int i = 1; i <= n - 1 ; i++)
for(int j = i + 1 ; j <= n ; j++)
if(fr[i] != 0 && fr[j] != 0)
if(a[i].j >= a[j].i && a[j].j >= a[i].i)
{
if(a[i].i < a[j].i) a[i].i = a[j].i;
if(a[i].j > a[j].j) a[i].j = a[j].j;
fr[i]++;
fr[j] = 0;
}
for(int i = 1 ; i <= n ; i++)
if(fr[i] >= 1)nr++;
cout << nr;
return 0;
}
Comentarii