最近,小多米准备开一间宠物收养所。这个收养所就只提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。
但是呢,小多米很担心领养了自己宠物的领养者对领养的宠物不满意。于是呢,她自己发明了一个特殊的公式,用来算出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而她也给每个在收养所的宠物一个特点值。
这样一来,她通过统计就很容易知道宠物领养者对自己领养的宠物满意度,也能够很方便的处理整个领养宠物的过程了。
宠物收养所总是只会有两种情况发生:被遗弃的宠物过多或者想要收养宠物的人太多。
当被遗弃的宠物过多时:假若这个时候宠物收养所来一个领养者,这个领养者希望领养的宠物的特点值为a,那么它将会领养一只目前还未被领养的宠物中特点值最接近a的一只宠物。(说明:任何两只宠物的特点值都不可能完全相同,任何两个领养者的希望领养宠物的特点值也是不可能完全相同)如果此时有两只满足领养者要求的宠物,即存在两只宠物,他们的特点值分别为a-b和a+b,那么领养者会领养特点值为a-b的那只宠物。
当想收养宠物的人过多时:假若这个时候宠物收养所来了一只被收养的宠物,那么哪个领养者可以领养它呢?可以领养它的领养者,是那个希望被领养宠物的特点值最接近该宠物特点值的领养者。如果这个宠物的特点值为a,存在两个领养者,他们希望领养宠物的特点值分别是a-b和a+b,那么特点值为a-b的那个领养者将会成功领养这个宠物。
一个领养者领养了一个特点值为a的宠物,而领养者本身希望领养宠物的特点值为b,那么这个领养者的不满意程度为abs(a-b)。
在这一年刚开始时,小多米的收养所里面既没有宠物,也没有领养者。到这一年年底时,她得到了一年当中领养者和被收养宠物到来收养所的情况。那么你怎么才能计算出所有收养了宠物的领养者的不满意程度的总和呢?
上面就是算法中“宠物收养所”问题。聪明的你,知道怎么帮助小多米解决这个问题吗?