#include <iostream> #include <algorithm> using namespace std; int main(){ long n, p, s; cin >> n >> p >> s; long a, b; pair<long, long> t[p]; for(int i = 0; i < p; ++i){ cin >> t[i].first >> t[i].second; } sort(t, t+p); for(int i = p-1; i >= 0; --i){ a = t[i].first; b = t[i].second; if(a <= s && s <= b){ for(int j = p-1; j >= 0; --j){ if(a-1 == t[j].second){ a = t[j].first; } } for(int j = 0; j < p; ++j){ if(b+1 == t[j].first){ b = t[j].second; } } a--; b++; if(s-a <= b-s){ if(a >= 1){ cout << a << '\n'; }else{ cout << b << '\n'; } }else{ if(b <= n){ cout << b << '\n'; }else{ cout << a << '\n'; } } } } } //notatki z lekcji //pp[i] = min(pp[i-j+1], ile wystaje); //while(tab[i+1] == tab[pp[i]+1]){ // pp[i]++; //} //O(n) //pref-pref ^ //1.sort //2.sprawdznie tego n jakim przedziale jest dana literka na itej pozyczji; //O(nlogn) //
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 58 59 60 61 62 63 64 65 | #include <iostream> #include <algorithm> using namespace std; int main(){ long n, p, s; cin >> n >> p >> s; long a, b; pair<long, long> t[p]; for(int i = 0; i < p; ++i){ cin >> t[i].first >> t[i].second; } sort(t, t+p); for(int i = p-1; i >= 0; --i){ a = t[i].first; b = t[i].second; if(a <= s && s <= b){ for(int j = p-1; j >= 0; --j){ if(a-1 == t[j].second){ a = t[j].first; } } for(int j = 0; j < p; ++j){ if(b+1 == t[j].first){ b = t[j].second; } } a--; b++; if(s-a <= b-s){ if(a >= 1){ cout << a << '\n'; }else{ cout << b << '\n'; } }else{ if(b <= n){ cout << b << '\n'; }else{ cout << a << '\n'; } } } } } //notatki z lekcji //pp[i] = min(pp[i-j+1], ile wystaje); //while(tab[i+1] == tab[pp[i]+1]){ // pp[i]++; //} //O(n) //pref-pref ^ //1.sort //2.sprawdznie tego n jakim przedziale jest dana literka na itej pozyczji; //O(nlogn) // |