#include <bits/stdc++.h>
using namespace std;
const int MX=1010;
int m;
long long n,s,best=1e15,l[MX],r[MX];
set<long long> all;
void check(long long x) {
if (x<1 || x>n || all.count(x)) return;
long long dst_best=abs(best-s);
long long dst_x=abs(x-s);
if (dst_x<dst_best || (dst_x==dst_best && x<best)) best=x;
}
int main() {
scanf("%lld%d%lld",&n,&m,&s);
for (int i=0; i<m; i++) {
scanf("%lld%lld",&l[i],&r[i]);
all.insert(l[i]);
all.insert(r[i]);
}
for (int i=0; i<m; i++) {
check(l[i]-1);
check(r[i]+1);
}
printf("%lld\n",best);
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 | #include <bits/stdc++.h> using namespace std; const int MX=1010; int m; long long n,s,best=1e15,l[MX],r[MX]; set<long long> all; void check(long long x) { if (x<1 || x>n || all.count(x)) return; long long dst_best=abs(best-s); long long dst_x=abs(x-s); if (dst_x<dst_best || (dst_x==dst_best && x<best)) best=x; } int main() { scanf("%lld%d%lld",&n,&m,&s); for (int i=0; i<m; i++) { scanf("%lld%lld",&l[i],&r[i]); all.insert(l[i]); all.insert(r[i]); } for (int i=0; i<m; i++) { check(l[i]-1); check(r[i]+1); } printf("%lld\n",best); return 0; } |
English