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; }