有一个抢票系统,给定总票数 N , N 取值范围为 [0,100000]。每个用户通过唯一的 UID 标识。
当用户发起抢票请求并完成付款时,系统会生成一个订单,订单通过唯一的订单D标识。此时用户的订单请求会进入排队队列。每个订单请求的票数取值范围为 [0,100] 当请求票数不超过当前余票数,则该订单请求成功;否则请求失败。
同一个用户支持发起多次订单请求。
系统提供一种助力排队机制,在上述订单请求排队期间如果邀请其他用户助力,该用户发起的助力系统会生成一个助力请求,助力请求也会进入上述排队队列,助力请求成功,则被助力的订单请求排队可以向前进一名;请求失败则忽略该助力请求。助力请求需要满足如下规则:一个用户只能辅助一次订单请求,重复的辅助无效;自己不能给自己辅助。每次助力请求只能帮助排在前面之前的订单请求。
一个抢票系统有总票数 N(范围 [0,100000]),每个订单请求由用户 UID(8位数字)、订单号(8位数字)和所需票数(范围 [0,100])构成。当用户发起订单请求且付款成功后,其订单进入排队队列;只有当订单请求的票数不超过当前余票数时,该订单才能最终成功。
此外,系统允许在排队期间发起助力请求(即邀请其他用户帮助),助力请求进入同一队列,并可使被助力订单“前进一名”(即在最终处理顺序中上移1位)。
助力请求需满足以下规则: