| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3830 人关注过本帖
标题: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
快速回复:CCF 201809-2买菜(求大佬看看我这个为什么是30分啊,我感觉情况都考虑 ...
数据加载中...
 
   



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

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