#include <bits/stdc++.h>
using namespace std;
#define ll long long
pair <ll,ll> seg[1002];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
ll n,s,ret=0; cin >> n;
int m,src; cin >> m >> s;
for(int i=1; i<=m; i++) cin >> seg[i].first >> seg[i].second;
sort(seg+1, seg+m+1);
for(int i=1; i<=m; i++)
if(s >= seg[i].first && s <= seg[i].second) src = i;
int act = src;
while(true)
{
if(act == 1)
{
if(seg[act].first > 1) ret = seg[act].first-1;
break;
}
else if(seg[act].first-1 != seg[act-1].second)
{
ret = seg[act].first-1;
break;
}
else act--;
}
act = src;
while(true)
{
if(act == m)
{
if(seg[act].second < n)
{
if(!ret) ret = seg[act].second+1;
else if(seg[act].second+1-s < s-ret) ret = seg[act].second+1;
}
break;
}
else if(seg[act].second+1 != seg[act+1].first)
{
if(!ret) ret = seg[act].second+1;
else if(seg[act].second+1-s < s-ret) ret = seg[act].second+1;
break;
}
else act++;
}
cout << ret << '\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 56 57 | #include <bits/stdc++.h> using namespace std; #define ll long long pair <ll,ll> seg[1002]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll n,s,ret=0; cin >> n; int m,src; cin >> m >> s; for(int i=1; i<=m; i++) cin >> seg[i].first >> seg[i].second; sort(seg+1, seg+m+1); for(int i=1; i<=m; i++) if(s >= seg[i].first && s <= seg[i].second) src = i; int act = src; while(true) { if(act == 1) { if(seg[act].first > 1) ret = seg[act].first-1; break; } else if(seg[act].first-1 != seg[act-1].second) { ret = seg[act].first-1; break; } else act--; } act = src; while(true) { if(act == m) { if(seg[act].second < n) { if(!ret) ret = seg[act].second+1; else if(seg[act].second+1-s < s-ret) ret = seg[act].second+1; } break; } else if(seg[act].second+1 != seg[act+1].first) { if(!ret) ret = seg[act].second+1; else if(seg[act].second+1-s < s-ret) ret = seg[act].second+1; break; } else act++; } cout << ret << '\n'; } |
English