现有N名热爱信息学的同学,将他们从1到N编号;第i名同学的编程能力为Qi。 为了实现共同进步,同时又不至于太受打击。每位同学都想找一位能力比自己高并且与 自己最接近的同学作为学习伙伴。请编程求出每位同

94,现有N名热爱信息学的同学,将他们从1到N编号;第i名同学的编程能力为Qi。

为了实现共同进步,同时又不至于太受打击。每位同学都想找一位能力比自己高并且与
自己最接近的同学作为学习伙伴。请编程求出每位同学理想的学习伙伴的编号和每位同学
自己被多少名同学选择为理想的学习伙伴。选择学习伙伴时,如果有多个符合条件的同学则选择编号最小的,
如果无法找到满足条件的同学则输出0。
输入第1行,整数N接下来N行,N个整数表示每位同学的编程能力Qi
输出
共N行,每行两个整数前面一个数为该同学的理想学习伙伴的编号,后面一个数为该同学被多少
名同学选择为理想的学习伙伴

样例输入

5
2 3 1 4 5 #换行

样例输出

2 1
4 1
1 0
5 1
0 1
‘’’

N=int(input())
l=list(map(int,input().split()))
#l1记录第一列
#l2记录第二列
l1=[]
l2=[0]*N
for i in range(N):
    aim_id=0
    flag=0#有无学习目标的标签
    for j in range(N):
        if flag==0 and l[i]<l[j]:#满足学习目标
            aim_id=j
            flag=1
            if flag==1 and l[i]<l[j] and l[j]<l[aim_id]:#是否是最佳学习目标
                aim_id=j
    if flag==1:#有了目标
        l1.append(aim_id+1)
        l2[aim_id]+=1
    else:
        l1.append(0)
for i in range(N):
    print (l1[i],l2[i])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值