1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    long long liczba_budynkow;
    int liczba_przedz, szkola_nr;
    vector<int> najmniejsze = { 1'000'000, 0 };

    cin >> liczba_budynkow >> liczba_przedz >> szkola_nr;

    vector<bool> zajete(liczba_budynkow + 1, false);

    for (int i = 0; i < liczba_przedz; i++)
    {
        int n1, n2;
        cin >> n1 >> n2;

        for (int j = n1; j <= n2; j++)
            zajete[j] = true;
    }

    //for (int i = 0; i < zajete.size(); i++)
        //cout << zajete[i] << endl;

    for (int i = 1; i <= liczba_budynkow; i++)
        if (!zajete[i])
        {
            int odleglosc = abs(szkola_nr - i);

            if (najmniejsze[0] > odleglosc)
            {
                najmniejsze[0] = odleglosc;
                najmniejsze[1] = i;
            }
        }

    cout << najmniejsze[1];
}