#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
long long n, m, s;
cin>>n>>m>>s;
vector<pair<long long, long long>> ranges;
for(int i=0;i<m;i++) {
long long l, r;
cin>>l>>r;
ranges.push_back(make_pair(l, r));
}
sort(ranges.begin(), ranges.end());
long long pos = -n-1;
if(ranges[0].first > 1) {
pos = ranges[0].first-1;
// cout << "zmiana0 " << pos << endl;
}
for(int i=0;i<ranges.size()-1;i++) {
if(pos > 0) {
if (ranges[i].second + 1 != ranges[i+1].first) {
long long better = abs(s - (ranges[i].second + 1)) < abs(s - (ranges[i+1].first - 1))?ranges[i].second+1:ranges[i+1].first - 1;
pos = abs(s - better) < abs(s - pos)?better:pos;
// cout << "zmiana1 " << pos << endl;
}
}else {
if (ranges[i].second + 1 != ranges[i+1].first) {
pos = abs(s - (ranges[i].second + 1)) < abs(s - (ranges[i+1].first - 1))?ranges[i].second+1:ranges[i+1].first - 1;
// cout << "zmiana2 " << pos << endl;
}
}
}
if(ranges[ranges.size() - 1].second < n) {
// cout << s << endl;
// cout << ranges[ranges.size() - 1].second+1 << endl;
// cout << s - (ranges[ranges.size() - 1].second+1) << endl;
// cout << pos << endl;
// cout << s - pos << endl;
if(pos > 0) {
pos = abs(s - (ranges[ranges.size() - 1].second+1))<abs(s-pos)?ranges[ranges.size() - 1].second+1:pos;
}else {
pos = ranges[ranges.size() - 1].second+1;
}
// cout << "zmiana3 " << pos << endl;
}
cout<<pos<<endl;
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 53 | #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); long long n, m, s; cin>>n>>m>>s; vector<pair<long long, long long>> ranges; for(int i=0;i<m;i++) { long long l, r; cin>>l>>r; ranges.push_back(make_pair(l, r)); } sort(ranges.begin(), ranges.end()); long long pos = -n-1; if(ranges[0].first > 1) { pos = ranges[0].first-1; // cout << "zmiana0 " << pos << endl; } for(int i=0;i<ranges.size()-1;i++) { if(pos > 0) { if (ranges[i].second + 1 != ranges[i+1].first) { long long better = abs(s - (ranges[i].second + 1)) < abs(s - (ranges[i+1].first - 1))?ranges[i].second+1:ranges[i+1].first - 1; pos = abs(s - better) < abs(s - pos)?better:pos; // cout << "zmiana1 " << pos << endl; } }else { if (ranges[i].second + 1 != ranges[i+1].first) { pos = abs(s - (ranges[i].second + 1)) < abs(s - (ranges[i+1].first - 1))?ranges[i].second+1:ranges[i+1].first - 1; // cout << "zmiana2 " << pos << endl; } } } if(ranges[ranges.size() - 1].second < n) { // cout << s << endl; // cout << ranges[ranges.size() - 1].second+1 << endl; // cout << s - (ranges[ranges.size() - 1].second+1) << endl; // cout << pos << endl; // cout << s - pos << endl; if(pos > 0) { pos = abs(s - (ranges[ranges.size() - 1].second+1))<abs(s-pos)?ranges[ranges.size() - 1].second+1:pos; }else { pos = ranges[ranges.size() - 1].second+1; } // cout << "zmiana3 " << pos << endl; } cout<<pos<<endl; return 0; } |
English