hdu 4585 Shaolin set

2014-11-24 08:28:27 · 作者: · 浏览: 0

lower_bound 返回第一个不小于 key值的 迭代器。

#include
  
   
#include
   
     #include
     #include
     
       using namespace std; int main() { int n; set
      
       s; map
       
        m; while(scanf("%d",&n),n){ s.clear(); m.clear; s.insert(1000000000); m[1000000000]=1; int i; for(i=1;i<=n;i++){ int a,b; scanf("%d%d",&a,&b); printf("%d ",a); set
        
         ::iterator it1,it2; it1=s.lower_bound(b); if(it1==s.begin()) printf("%d\n",m[*it1]); else{ it2=it1--; if(abs(*it1-b)>abs(*it2-b)) printf("%d\n",m[*it2]); else printf("%d\n",m[*it1]); } s.insert(b); m[b]=a; } } }