#include<bits/stdc++.h> using namespace std; #define ll long long const ll INF = 1000000000000000000LL; const ll MAXN = 1e3 + 7; pair<ll, ll> prz[MAXN]; int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(0); ll n, m, s; cin >> n >> m >> s; for(ll i = 1; i <= m ; i++){ cin >> prz[i].first >> prz[i].second; } m++; prz[m] = {n+1, n+1}; m++; prz[m] = {0, 0}; sort(prz+1, prz+1+m); bool czyzaw = 0; ll gdz = -1; for(ll i = 1; i <= m ; i++){ if(prz[i].first <= s && s <= prz[i].second){ czyzaw = 1; gdz = i; break; } } if(!czyzaw){ cout << s << "\n"; } else{ //cerr << gdz << "\n"; ll odp = INF; for(ll i = gdz+1; i <= n ; i++){ if(prz[i-1].second+1 < prz[i].first){ odp = prz[i-1].second+1; break; } } //cerr << odp << "\n"; for(ll i = gdz-1; i >= 1 ; i--){ if(prz[i+1].first-1 > prz[i].second){ //cerr << "tutaj\n"; if(abs(s-odp) >= abs(s-(prz[i+1].first-1))){ odp = prz[i+1].first-1; } break; } } cout << odp << "\n"; } 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 54 55 56 57 58 | #include<bits/stdc++.h> using namespace std; #define ll long long const ll INF = 1000000000000000000LL; const ll MAXN = 1e3 + 7; pair<ll, ll> prz[MAXN]; int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(0); ll n, m, s; cin >> n >> m >> s; for(ll i = 1; i <= m ; i++){ cin >> prz[i].first >> prz[i].second; } m++; prz[m] = {n+1, n+1}; m++; prz[m] = {0, 0}; sort(prz+1, prz+1+m); bool czyzaw = 0; ll gdz = -1; for(ll i = 1; i <= m ; i++){ if(prz[i].first <= s && s <= prz[i].second){ czyzaw = 1; gdz = i; break; } } if(!czyzaw){ cout << s << "\n"; } else{ //cerr << gdz << "\n"; ll odp = INF; for(ll i = gdz+1; i <= n ; i++){ if(prz[i-1].second+1 < prz[i].first){ odp = prz[i-1].second+1; break; } } //cerr << odp << "\n"; for(ll i = gdz-1; i >= 1 ; i--){ if(prz[i+1].first-1 > prz[i].second){ //cerr << "tutaj\n"; if(abs(s-odp) >= abs(s-(prz[i+1].first-1))){ odp = prz[i+1].first-1; } break; } } cout << odp << "\n"; } return 0; } |