#include <bits/stdc++.h>
#define ff first
#define ss second
using namespace std;
long long n, m, s;
vector <pair<long long, long long>>v;
vector <long long> ciag;
long long mini_odl;
long long dom;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m >> s;
mini_odl = n + 5;
for (int i=0; i<m; i++) {
long long a, b;
cin >> a >> b;
v.push_back(make_pair(a, b));
}
v.push_back(make_pair(0, 0));
v.push_back(make_pair(n+1, n+1));
sort(v.begin(), v.end());
for (int i=1; i<v.size()-1; i++) {
if (i==1) {
if (v[i].ff > 1) {ciag.push_back(v[i].ff-1);}
if (v[i].ss != v[i+1].ff - 1) {ciag.push_back(v[i].ss+1), ciag.push_back(v[i+1].ff-1);}
}
else if (i==v.size()-2) {
if (v[i].ss < n) {ciag.push_back(v[i].ss+1);}
if (v[i].ff != v[i-1].ss + 1) {ciag.push_back(v[i].ff-1); ciag.push_back(v[i-1].ss+1);}
}
else {
if (v[i].ss != v[i+1].ff - 1) {ciag.push_back(v[i].ss+1), ciag.push_back(v[i+1].ff-1);}
if (v[i].ff != v[i-1].ss + 1) {ciag.push_back(v[i].ff-1); ciag.push_back(v[i-1].ss+1);}
}
}
for (int i=0; i<ciag.size(); i++) {
long long odl = abs(s-ciag[i]);
if (odl < mini_odl) {
dom = ciag[i];
mini_odl = odl;
}
}
cout << dom << endl;
}
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 72 | #include <bits/stdc++.h> #define ff first #define ss second using namespace std; long long n, m, s; vector <pair<long long, long long>>v; vector <long long> ciag; long long mini_odl; long long dom; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m >> s; mini_odl = n + 5; for (int i=0; i<m; i++) { long long a, b; cin >> a >> b; v.push_back(make_pair(a, b)); } v.push_back(make_pair(0, 0)); v.push_back(make_pair(n+1, n+1)); sort(v.begin(), v.end()); for (int i=1; i<v.size()-1; i++) { if (i==1) { if (v[i].ff > 1) {ciag.push_back(v[i].ff-1);} if (v[i].ss != v[i+1].ff - 1) {ciag.push_back(v[i].ss+1), ciag.push_back(v[i+1].ff-1);} } else if (i==v.size()-2) { if (v[i].ss < n) {ciag.push_back(v[i].ss+1);} if (v[i].ff != v[i-1].ss + 1) {ciag.push_back(v[i].ff-1); ciag.push_back(v[i-1].ss+1);} } else { if (v[i].ss != v[i+1].ff - 1) {ciag.push_back(v[i].ss+1), ciag.push_back(v[i+1].ff-1);} if (v[i].ff != v[i-1].ss + 1) {ciag.push_back(v[i].ff-1); ciag.push_back(v[i-1].ss+1);} } } for (int i=0; i<ciag.size(); i++) { long long odl = abs(s-ciag[i]); if (odl < mini_odl) { dom = ciag[i]; mini_odl = odl; } } cout << dom << endl; } |
English