#include #include #include #include #include using namespace std; int main() { typedef map> intmap; intmap mmp; mmp.insert(intmap::value_type(1000000000, 1)); int rs; cin >> rs; stringstream res; for (int i = 0;i < rs;++i) { int id, sorce; cin >> id >> sorce; if (mmp.size() == 1) { res << id << " " << 1 << endl; mmp.insert(make_pair(sorce, id)); } else { pair < intmap::iterator, bool> pp = mmp.insert(make_pair(sorce, id)); intmap::iterator aa(pp.first); bool bb(pp.second); //cout << (--aa)->second << " " << (pp.first)->second << " "<<(++pp.first)->second << endl; if (bb) { if ((sorce - ((--aa)->first)) <= (((++pp.first)->first) - sorce)) { res << id << " " << aa->second << endl; } else { res << id << " " << ((pp.first)->second) << endl; } } } } cout << res.str(); for (intmap::iterator ii = mmp.begin(); ii != mmp.end();++ii) { cout << "(" << ii->first << "," << ii->second << ")"; } return 0; }