#include <climits> #include <iostream> #include <numeric> #include <vector> using namespace std; const int NIESKONCZONOSC = INT_MAX; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int budynki, przedzialy, szkola; cin >> budynki >> przedzialy >> szkola; vector<int> niezajete(budynki); iota(niezajete.begin(), niezajete.end(), 1); int *zero = 0; niezajete[szkola - 1] = 0; for (int i = 0; i < przedzialy; ++i) { int poczatek, koniec; cin >> poczatek >> koniec; for(int d = poczatek - 1; d < koniec; ++d){ niezajete[d] = 0; } } int odleglosc = NIESKONCZONOSC; int odp = 0; for (int i : niezajete) { int roznica = (szkola - i) < 0 ? ((szkola - i) * -1) : (szkola - i); if ((i > 0) && (roznica < odleglosc)) { odleglosc = roznica; odp = i; } } cout << odp; return 0; }
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 42 | #include <climits> #include <iostream> #include <numeric> #include <vector> using namespace std; const int NIESKONCZONOSC = INT_MAX; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int budynki, przedzialy, szkola; cin >> budynki >> przedzialy >> szkola; vector<int> niezajete(budynki); iota(niezajete.begin(), niezajete.end(), 1); int *zero = 0; niezajete[szkola - 1] = 0; for (int i = 0; i < przedzialy; ++i) { int poczatek, koniec; cin >> poczatek >> koniec; for(int d = poczatek - 1; d < koniec; ++d){ niezajete[d] = 0; } } int odleglosc = NIESKONCZONOSC; int odp = 0; for (int i : niezajete) { int roznica = (szkola - i) < 0 ? ((szkola - i) * -1) : (szkola - i); if ((i > 0) && (roznica < odleglosc)) { odleglosc = roznica; odp = i; } } cout << odp; return 0; } |