il programma funziona senza problemi con gli input che sono dati da esempio e altri che ho fatto da me, ma quando vado a sottoporlo come valutazione mi dà sempre 0/100, non capisco perché
#include <iostream>
#include <cassert>
#include <utility>
#include <vector>
#include <algorithm>
using namespace std;
vector <long long int> pos;
void inizia() {
    pos.clear();
}
void apri(long long p) {
    pos.push_back(p);
}
void chiudi(long long p) {
    auto j = find(pos.begin(), pos.end(), p);
    long long int index = distance(pos.begin(),j);
    pos.erase(pos.begin() + index);
}
long long chiedi(long long p) {
    if  (count(pos.begin(), pos.end(), p) != 0){
        return p;
    }
    apri(p);
    if (pos.size()==1){
        chiudi(p);
        return -1;
    }
    if (pos.size()==2){
        chiudi(p);
        return pos[0];
    }
    sort(pos.begin(), pos.end());
    auto j = find(pos.begin(), pos.end(), p);
    long long int index = distance(pos.begin(),j);
    long long int f = pos[index-1];
    long long int m = pos[index];
    long long int t = pos[index+1];
    if (m - f > t - m) {
        chiudi(p);
        return f;
    } else {
        chiudi(p);
        return t;
    }
}
int main() {
    int Q;
    cin >> Q;
    inizia();
    for (int i = 0; i < Q; i++){
        long long p;
        char t;
        cin >> t >> p;
        if (t == 'a') apri(p);
        else if (t == 'c') chiudi(p);
        else cout << chiedi(p) << endl;
    }
    return 0;
}