#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL n, m, s;
vector<pair<LL, LL>> Przedzialy;
vector<pair<LL, LL>> V;
LL Pocz = -1, Kon = -1;
LL Ans;
void LaczPrzedzialy()
{
// cerr << "Przedzialy :\n";
// for(auto i : Przedzialy) {
// cerr << "{" << i.first << ", " << i.second << "} ";
// }
// cerr << "\n";
for(int i = 0; i < m; i++) {
if(Pocz == -1) {
Pocz = Przedzialy[i].first;
Kon = Przedzialy[i].second;
} else {
if(Kon + 1 == Przedzialy[i].first) {
Kon = Przedzialy[i].second;
} else {
V.push_back({Pocz, Kon});
Pocz = Przedzialy[i].first;
Kon = Przedzialy[i].second;
}
}
}
V.push_back({Pocz, Kon});
// cerr << "V :\n";
// for(auto i : V) {
// cerr << "{" << i.first << ", " << i.second << "} ";
// }
// cerr << "\n";
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m >> s;
LL a, b;
for(int i = 0; i < m; i++) {
cin >> a >> b;
Przedzialy.push_back({a, b});
}
sort(Przedzialy.begin(), Przedzialy.end());
LaczPrzedzialy();
for(auto i : V) {
if(i.first <= s and i.second >= s) {
if(i.first == 1) {
Ans = i.second + 1;
} else if(i.second == n) {
Ans = i.first - 1;
} else {
if((s - (i.first - 1)) > ((i.second + 1) - s)) {
Ans = i.second + 1;
} else {
Ans = i.first - 1;
}
}
break;
}
}
cout << Ans;
}
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | #include <bits/stdc++.h> using namespace std; typedef long long LL; LL n, m, s; vector<pair<LL, LL>> Przedzialy; vector<pair<LL, LL>> V; LL Pocz = -1, Kon = -1; LL Ans; void LaczPrzedzialy() { // cerr << "Przedzialy :\n"; // for(auto i : Przedzialy) { // cerr << "{" << i.first << ", " << i.second << "} "; // } // cerr << "\n"; for(int i = 0; i < m; i++) { if(Pocz == -1) { Pocz = Przedzialy[i].first; Kon = Przedzialy[i].second; } else { if(Kon + 1 == Przedzialy[i].first) { Kon = Przedzialy[i].second; } else { V.push_back({Pocz, Kon}); Pocz = Przedzialy[i].first; Kon = Przedzialy[i].second; } } } V.push_back({Pocz, Kon}); // cerr << "V :\n"; // for(auto i : V) { // cerr << "{" << i.first << ", " << i.second << "} "; // } // cerr << "\n"; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m >> s; LL a, b; for(int i = 0; i < m; i++) { cin >> a >> b; Przedzialy.push_back({a, b}); } sort(Przedzialy.begin(), Przedzialy.end()); LaczPrzedzialy(); for(auto i : V) { if(i.first <= s and i.second >= s) { if(i.first == 1) { Ans = i.second + 1; } else if(i.second == n) { Ans = i.first - 1; } else { if((s - (i.first - 1)) > ((i.second + 1) - s)) { Ans = i.second + 1; } else { Ans = i.first - 1; } } break; } } cout << Ans; } |
English