#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct p
{
ll l;
ll r;
};
bool operator<(p a,p b)
{
return a.l<b.l;
}
p operator-(p a,p b)
{
if(b<a) return b-a;
p zw;
zw.l=a.r+1;
zw.r=b.l-1;
return zw;
}
int main()
{
cin.tie(0)->sync_with_stdio(0);
ll n,m,s;
cin>>n>>m>>s;
vector <p> oni(m);
for(int i=0;i<m;i++)
cin>>oni[i].l>>oni[i].r;
oni.push_back({n+1,2*n});
sort(oni.begin(),oni.end());
ll vic=-n,mak=2*n;
if(oni[0].l>1) vic=oni[0].l-1;
for(int i=1;i<m+1;i++)
{
p t=oni[i]-oni[i-1];
if(t.l>t.r) continue;
if(t.r<s) vic=t.r;
if(t.l>s&&mak==2*n) mak=t.l;
}
if(abs(s-vic)>abs(mak-s)&&oni[m-1].r!=mak) cout<<mak<<"\n";
else cout<<vic<<"\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 | #include <bits/stdc++.h> using namespace std; typedef long long ll; struct p { ll l; ll r; }; bool operator<(p a,p b) { return a.l<b.l; } p operator-(p a,p b) { if(b<a) return b-a; p zw; zw.l=a.r+1; zw.r=b.l-1; return zw; } int main() { cin.tie(0)->sync_with_stdio(0); ll n,m,s; cin>>n>>m>>s; vector <p> oni(m); for(int i=0;i<m;i++) cin>>oni[i].l>>oni[i].r; oni.push_back({n+1,2*n}); sort(oni.begin(),oni.end()); ll vic=-n,mak=2*n; if(oni[0].l>1) vic=oni[0].l-1; for(int i=1;i<m+1;i++) { p t=oni[i]-oni[i-1]; if(t.l>t.r) continue; if(t.r<s) vic=t.r; if(t.l>s&&mak==2*n) mak=t.l; } if(abs(s-vic)>abs(mak-s)&&oni[m-1].r!=mak) cout<<mak<<"\n"; else cout<<vic<<"\n"; } |
English