ayaatiyeh's blog

By ayaatiyeh, history, 7 years ago, In English

int up(vector &v, int num) { int lo = 0, hi = sz(v) — 1; while (lo <= hi) { int mid = (lo + hi) / 2; if (v[mid] <= num) lo = mid + 1; else if (v[mid] > num) hi = mid — 1; } if (lo >= sz(v)) return -1; return v[lo]; }

int down(vector &v, int num) { int lo = 0, hi = sz(v) — 1; while (lo <= hi) { int mid = (lo + hi) / 2; if (v[mid] < num) lo = mid + 1; else if (v[mid] >= num) hi = mid — 1; } if (hi < 0) return -1; return v[hi]; }

int main() { PLAY();

int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++)
    cin >> v[i];
int q;
cin >> q;
while (q--) {
    int num;
    cin >> num;
    int first = down(v, num);
    int second = up(v, num);

    if (first == -1) cout << "X";
    else cout << first;
    if (second == -1) cout << " X" << endl;
    else cout << " " << second << endl;
}

return 0;

}

  • Vote: I like it
  • -16
  • Vote: I do not like it

| Write comment?