#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define st first
#define nd second
vector<pair<ll, ll> > V;
ll mabs(ll x) {
if(x < 0)
return -x;
return x;
}
const ll INF = (ll)1e18 + (ll)1234;
int main(){
ll n, m, s;
cin >> n >> m >> s;
ll li, ri;
for(int i = 0; i < m; i++){
cin >> li >> ri;
V.push_back({li, ri});
}
ll bestziom = -3;
sort(V.begin(), V.end());
ll minres = INF;
if(V[0].st > 1){
if( minres > mabs(s-(V[0].st-1))){
bestziom = V[0].st-1;
minres = mabs(s-(V[0].st -1));
}
}
for(int i = 0; i < V.size() -1; i++){
if(V[i].nd + 1 == V[i+1].st)
continue;
//minres = min(minres, mabs(s - (V[0].nd + 1)));
if(minres > mabs(s - (V[i].nd+1))){
minres = mabs(s - (V[i].nd + 1));
bestziom = V[i].nd + 1;
}
//minres = min(minres, mabs(s - (V[i+1].st -1)));
if(minres > mabs(s - (V[i+1].st -1))){
minres = mabs(s - (V[i+1].st -1));
bestziom = V[i+1].st -1;
}
}
if(V.back().nd < n){
if(minres >mabs(s - (V.back().nd+1)) ){
minres = mabs(s - (V.back().nd+1)) ;
bestziom = V.back().nd + 1;
}
}
cout << bestziom << "\n";
}
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 | #include<bits/stdc++.h> using namespace std; typedef long long ll; #define st first #define nd second vector<pair<ll, ll> > V; ll mabs(ll x) { if(x < 0) return -x; return x; } const ll INF = (ll)1e18 + (ll)1234; int main(){ ll n, m, s; cin >> n >> m >> s; ll li, ri; for(int i = 0; i < m; i++){ cin >> li >> ri; V.push_back({li, ri}); } ll bestziom = -3; sort(V.begin(), V.end()); ll minres = INF; if(V[0].st > 1){ if( minres > mabs(s-(V[0].st-1))){ bestziom = V[0].st-1; minres = mabs(s-(V[0].st -1)); } } for(int i = 0; i < V.size() -1; i++){ if(V[i].nd + 1 == V[i+1].st) continue; //minres = min(minres, mabs(s - (V[0].nd + 1))); if(minres > mabs(s - (V[i].nd+1))){ minres = mabs(s - (V[i].nd + 1)); bestziom = V[i].nd + 1; } //minres = min(minres, mabs(s - (V[i+1].st -1))); if(minres > mabs(s - (V[i+1].st -1))){ minres = mabs(s - (V[i+1].st -1)); bestziom = V[i+1].st -1; } } if(V.back().nd < n){ if(minres >mabs(s - (V.back().nd+1)) ){ minres = mabs(s - (V.back().nd+1)) ; bestziom = V.back().nd + 1; } } cout << bestziom << "\n"; } |
English