#include<bits/stdc++.h>
using namespace std;
long long n,s;
int m;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m >> s;
vector<pair<long long,long long>>prz;
for(int i = 0;i < m;i++){
long long a,b;
cin >> a >> b;
prz.push_back({a,b});
}
sort(prz.begin(),prz.end());
long long res = 100000000000001;
if(prz[0].first > 1)res = prz[0].first-1;
for(int i = 1;i < m;i++){
if(prz[i].first - prz[i-1].second <= 1)continue;
if(abs(prz[i-1].second+1 - s) < abs(res - s))res = prz[i-1].second + 1;
if(abs(prz[i].first - 1 - s) < abs(res - s))res = prz[i].first - 1;
}
if(prz[m-1].second + 1 <= n && abs(prz[m-1].second + 1 - s) < abs(res - s))res = prz[m-1].second+1;
cout << res;
}
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 | #include<bits/stdc++.h> using namespace std; long long n,s; int m; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m >> s; vector<pair<long long,long long>>prz; for(int i = 0;i < m;i++){ long long a,b; cin >> a >> b; prz.push_back({a,b}); } sort(prz.begin(),prz.end()); long long res = 100000000000001; if(prz[0].first > 1)res = prz[0].first-1; for(int i = 1;i < m;i++){ if(prz[i].first - prz[i-1].second <= 1)continue; if(abs(prz[i-1].second+1 - s) < abs(res - s))res = prz[i-1].second + 1; if(abs(prz[i].first - 1 - s) < abs(res - s))res = prz[i].first - 1; } if(prz[m-1].second + 1 <= n && abs(prz[m-1].second + 1 - s) < abs(res - s))res = prz[m-1].second+1; cout << res; } |
English