/** * Patryk Kisielewski * * Potyczki Algorytmiczne 2025 * Zadanie: SZK - Szkoła [C] */ #include <algorithm> #include <iostream> #include <queue> #include <vector> using namespace std; int main() { long long n, m, s; cin >> n >> m >> s; vector<pair<long long, long long>> v(m), v2; for (auto& p : v) { cin >> p.first >> p.second; } v.push_back({0,0}); v.push_back({n+1,n+1}); sort(v.begin(), v.end()); for (unsigned i = 1; i < v.size(); ++i) { if (v[i-1].second + 1 < v[i].first) { v2.push_back({v[i-1].second + 1, v[i].first - 1}); } } long long pos1 = 0; while (v2[pos1].second <= s) { ++pos1; } long long pos2 = v2.size() - 1; while (s < v2[pos2].first + 1) --pos2; if (pos1 == pos2) { cout << s - 1 << endl; return 0; } long long f1 = v2[pos1].first; long long f2 = v2[pos2].second; if (f1 - s < s - f2) { cout << f1 << endl; return 0; } else { cout << f2 << endl; return 0; } 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 43 44 45 46 47 48 49 50 51 52 | /** * Patryk Kisielewski * * Potyczki Algorytmiczne 2025 * Zadanie: SZK - Szkoła [C] */ #include <algorithm> #include <iostream> #include <queue> #include <vector> using namespace std; int main() { long long n, m, s; cin >> n >> m >> s; vector<pair<long long, long long>> v(m), v2; for (auto& p : v) { cin >> p.first >> p.second; } v.push_back({0,0}); v.push_back({n+1,n+1}); sort(v.begin(), v.end()); for (unsigned i = 1; i < v.size(); ++i) { if (v[i-1].second + 1 < v[i].first) { v2.push_back({v[i-1].second + 1, v[i].first - 1}); } } long long pos1 = 0; while (v2[pos1].second <= s) { ++pos1; } long long pos2 = v2.size() - 1; while (s < v2[pos2].first + 1) --pos2; if (pos1 == pos2) { cout << s - 1 << endl; return 0; } long long f1 = v2[pos1].first; long long f2 = v2[pos2].second; if (f1 - s < s - f2) { cout << f1 << endl; return 0; } else { cout << f2 << endl; return 0; } return 0; } |