#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; } |