# PBinfo #4062 – SezonulLamaCrima – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerința
Se dau n intervale, să se afișeze care dintre ele includ alte intervale și care sunt incluse într-un interval. Intervalul [a,b] este inclus în intervalul [c,d] dacă c <= a și b <= d (a < b, c < d).

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n perechi de numere a b cu a < b reprezentând capetele segmentelor.

Date de ieșire
Programul va afișa pe ecran 2 rânduri. Pe primul rând a i-a valoare este 1 dacă intervalul i după ordinea citirii include alte intervale, altfel va fi 0. Pe al doilea rând a i-a valoare va fi 1 dacă intervalul i după ordinea citirii este inclus într-un alt interval.

Restricții și precizări

1 ≤ n ≤ 200.000
Capetele intervalelor sunt numere din intervalul [1, 1.000.000.000].

Exemplu:
Intrare

4
1 6
2 4
4 8
3 6
Ieșire

1 0 0 0
0 1 0 1
Explicație
Primul interval cuprinde intervalele 2 și 4.

## Cod sursă C++

```cpp
#include<bits/stdc++.h>
using namespace std;
struct in{
    int st,dr,ind;
}v[200005];
int n;
bool r[200005][2];
bool cmp(in a,in b){
    return a.st<b.st||(a.st==b.st&&a.dr>b.dr);
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>v[i].st>>v[i].dr;
        v[i].ind=i;
    }
    sort(v+1,v+n+1,cmp);
    int mx(0),mn(1e9+7);
    for(int i=n;i>=1;i--){
        r[v[i].ind][0]=(bool)(mn<=v[i].dr);
        mn=min(mn,v[i].dr);
    }
    for(int i=1;i<=n;i++){
        r[v[i].ind][1]=(bool)(mx>=v[i].dr);
        mx=max(mx,v[i].dr);
    }
    for(int i=0;i<=1;i++,cout<<"\n")for(int j=1;j<=n;j++)cout<<r[j][i]<<" ";
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/4062)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/4062/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-4062/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
