#include <cstdio> #include <algorithm> using namespace std; struct interval {long l; long r;}; int main() { long n, s; int m; scanf("%li %i %li ", &n, &m, &s); interval I[m+1]; for (int i = 0; i<m; i++) scanf("%li %li ", &I[i].l, &I[i].r); sort(I, I+m, [&](interval a, interval b){return a.l<b.l;}); I[m] = {n+1, 0}; long p = 1, q, d = n, x = 0; for (int i = 0; i<=m; i++) { q = I[i].l-1; if (p <= q) { if (labs(s-p) < d) d = labs(s-p), x = p; if (labs(s-q) < d) d = labs(s-q), x = q; } p = I[i].r+1; } printf("%li\n", x); 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 27 28 29 | #include <cstdio> #include <algorithm> using namespace std; struct interval {long l; long r;}; int main() { long n, s; int m; scanf("%li %i %li ", &n, &m, &s); interval I[m+1]; for (int i = 0; i<m; i++) scanf("%li %li ", &I[i].l, &I[i].r); sort(I, I+m, [&](interval a, interval b){return a.l<b.l;}); I[m] = {n+1, 0}; long p = 1, q, d = n, x = 0; for (int i = 0; i<=m; i++) { q = I[i].l-1; if (p <= q) { if (labs(s-p) < d) d = labs(s-p), x = p; if (labs(s-q) < d) d = labs(s-q), x = q; } p = I[i].r+1; } printf("%li\n", x); return 0; } |