标题:CCF 201809-2买菜(求大佬看看我这个为什么是30分啊,我感觉情况都考虑到了 ...
取消只看楼主
LG隐
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:67
专家分:198
注 册:2016-4-20
结帖率:0
已结贴  问题点数:20 回复次数:0 
CCF 201809-2买菜(求大佬看看我这个为什么是30分啊,我感觉情况都考虑到了)能给我看一个吗

n=int(input())
b=[]
c=[]
total_time=0
for i in range(n):        #数据的录入
    son=list(map(int,input().split()))
    b.append(son)
    son=[]
for i in range(n):        #数据的录入
    son=list(map(int,input().split()))
    c.append(son)
    son=[]
left=0        #控制第第一个人的数组
right=0        #控制第二个人的数组
while left<n and right<n:
    if b[left][1]>c[right][0]:        #如果b段的结束时间大于c时间段的开始时间
        if b[left][1]>=c[right][1]:    #判断这个结束时间是否大于c段的结束时间
            if b[left][0]>=c[right][1]:    #如果b段结束时间和开始时间都大于c段的结束时间就没有交流
                right+=1
            elif b[left][0]<=c[right][0]:    #如果b段的开始时间小于c段的结束开始时间
                total_time+=c[right][1]-c[right][0]
                right+=1
            else:
                total_time+=c[right][1]-b[right][0]
                right+=1
        elif b[left][1]<c[right][1]:
            if b[left][0]<=c[right][0]:
                total_time+=b[left][1]-c[right][0]
                left+=1
            elif b[left][0]>c[right][0]:
                total_time+=b[left][1]-b[left][0]
                left+=1
    elif b[left][1]<=c[right][0]:
        left+=1
print(total_time)
   
        
   
        
搜索更多相关主题的帖子: 结束 left if int 时间 
2020-02-29 16:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499476-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.089839 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved