这是个好东西
void work( int pos )
{
l[pos] = pos , r[pos] = n ;
while(top && a[st[top-1]] >a[pos] ){
r[ st[--top]] = pos -1 ;
}
st[top++] = pos ;
if( top == 1 ) l[pos] = 1 ;
else l[pos] = st[top-2] + 1 ;
}
poj 3494 2796