# PBinfo #2636 – Noduri Izolate – Rezolvare C++

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

## Enunț

Cerința
Se dau două numere n și m. Aflați care este numărul minim și numărul maxim de noduri izolate într-un graf neorientat cu n noduri și m muchii în care nu există o muchie de la un nod la el însuși și între oricare două noduri diferite există cel mult o muchie.

Date de intrare
Programul citește de la tastatură numerele n m.

Date de ieșire
Programul va afișa pe ecran numerele a și b, reprezentând numărul minim, respectiv numărul maxim de noduri izolate într-un graf neorientat cu n noduri și m muchii în care nu există o muchie de la un nod la el însuși și între oricare două noduri diferite există cel mult o muchie.

Restricții și precizări

1 ≤ n ≤ 100.000
\( 0 \leq m \leq \frac{n*(n-1)}{2}  \)

Exemplu:
Intrare

4 2
Ieșire

0 1
Explicație
Se poate construi un graf fără noduri izolate, cu muchiile (1,2) și (3,4). Pentru a obține un nod izolat, putem construi un graf cu muchiile (1,2) și (1,3).

## Cod sursă C++

```cpp
#include<bits/stdc++.h>
using namespace std;
long long a, b;
int main()
{
    cin >> a >> b;
    if(b == 0)
    {
        cout << a << " " << a << '\n';
        return 0;
    }
    int sol = a;
    for(long long i = 1; i <= b; ++i)
    {
        if(sol >= 2)
            sol -= 2;
        else
            --sol;
        if(sol == 0)
            break;
    }
    cout << sol << " ";
    long long gauss = 1;
    while(gauss * (gauss-1) / 2 < b)
        ++gauss;
    cout << max(0LL, a - gauss);
    return 0;
}
```

## Resurse

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