#include <algorithm>
#include<iostream>
#include<string>
#include<set>
#include<vector>
#include<map>
#include <bits/ranges_algo.h>
using namespace std;
typedef long long ll;
ll S,ans =1'000'000'000'000'000'000;
void chicken(ll x) {
if (abs(x-S)<abs(ans - S))
ans = x;
}
int main () {
ll N, K ;
cin >> N >> K >> S;
pair<ll, ll> arr[K+2];
for (int i = 0; i < K; i++)
cin >> arr[i].first >> arr[i].second;
arr[K].first = -1'000'000'000'000'000'000; arr[K].second = 0;
arr[K+1].first = +N+1; arr[K+1].second= 1'000'000'000'000'000'000 ;
sort(arr, arr+K+2);
for (int i = 1; i <= K; i++) {
if (arr[i].first -1 > arr[i-1].second) chicken(arr[i].first -1);
if (arr[i].second +1 < arr[i+1].first) chicken(arr[i].second +1);
}
cout << ans << 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 | #include <algorithm> #include<iostream> #include<string> #include<set> #include<vector> #include<map> #include <bits/ranges_algo.h> using namespace std; typedef long long ll; ll S,ans =1'000'000'000'000'000'000; void chicken(ll x) { if (abs(x-S)<abs(ans - S)) ans = x; } int main () { ll N, K ; cin >> N >> K >> S; pair<ll, ll> arr[K+2]; for (int i = 0; i < K; i++) cin >> arr[i].first >> arr[i].second; arr[K].first = -1'000'000'000'000'000'000; arr[K].second = 0; arr[K+1].first = +N+1; arr[K+1].second= 1'000'000'000'000'000'000 ; sort(arr, arr+K+2); for (int i = 1; i <= K; i++) { if (arr[i].first -1 > arr[i-1].second) chicken(arr[i].first -1); if (arr[i].second +1 < arr[i+1].first) chicken(arr[i].second +1); } cout << ans << endl; } |
English