//Mikolaj Tofiluk
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using pll=pair<ll,ll>;
constexpr int MAXN=1007;
pll przedzialy[MAXN];
vector<pll> nowe;
ll n,s;
int m;
void wczytanie(){
cin>>n>>m>>s;
for (int i=0;i<m;i++) cin>>przedzialy[i].first>>przedzialy[i].second;
}
void zloz_przedzialy(){
sort(przedzialy,przedzialy+m);
pll p=przedzialy[0];
for (int i=1;i<m;i++){
if (przedzialy[i].first<=p.second+1) p.second=max(p.second,przedzialy[i].second);
else{
nowe.push_back(p);
p=przedzialy[i];
}
}
nowe.push_back(p);
}
ll solve(){
ll w=3*n;
ll x1,x2;
for (int i=0;i<nowe.size();i++){
x1=nowe[i].first-1;
x2=nowe[i].second+1;
if (x1>=1 && abs(s-x1)<abs(s-w)) w=x1;
if (x2<=n && abs(s-x2)<abs(s-w)) w=x2;
}
return w;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
wczytanie();
zloz_przedzialy();
cout<<solve();
}
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 | //Mikolaj Tofiluk #include <bits/stdc++.h> using namespace std; using ll=long long; using pll=pair<ll,ll>; constexpr int MAXN=1007; pll przedzialy[MAXN]; vector<pll> nowe; ll n,s; int m; void wczytanie(){ cin>>n>>m>>s; for (int i=0;i<m;i++) cin>>przedzialy[i].first>>przedzialy[i].second; } void zloz_przedzialy(){ sort(przedzialy,przedzialy+m); pll p=przedzialy[0]; for (int i=1;i<m;i++){ if (przedzialy[i].first<=p.second+1) p.second=max(p.second,przedzialy[i].second); else{ nowe.push_back(p); p=przedzialy[i]; } } nowe.push_back(p); } ll solve(){ ll w=3*n; ll x1,x2; for (int i=0;i<nowe.size();i++){ x1=nowe[i].first-1; x2=nowe[i].second+1; if (x1>=1 && abs(s-x1)<abs(s-w)) w=x1; if (x2<=n && abs(s-x2)<abs(s-w)) w=x2; } return w; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); wczytanie(); zloz_przedzialy(); cout<<solve(); } |
English