#54578: 極度繁雜的垃圾程式


s313048@gm.hccvs.hc.edu.tw (資二2-11曾奕升)


import sys
line = sys.stdin.read()
line = line.splitlines()
N = int(line.pop(0))
entire_line = []
for i in range(N):
    entire_line.append(line[i])
a_line = []


def super_line_dddd_d():
    global a_line
    p =[]
    for i in entire_line:
        k = i.split()
        for j in k:
            p.append(int(j))
        a_line.append(p)
        p = []
super_line_dddd_d()
b_line = 0
c_line = 0
d_line = 0
e = 0
g = 0
a_line.sort()
for i in a_line:
    if g != 0:
        if i[1] - d_line >= 0:
            if i[1] - i[0] + b_line <= i[1] - c_line:
                e += i[1] - i[0]
            else:
                e += i[1] - d_line
        else:
            continue
    else:
        e += i[1] - i[0]
    b_line = i[1] - i[0]
    c_line = i[0]
    d_line = i[1]
    g += 1
print(e)
這個程式主要依靠兩個不相連的線段,最後減最前會>兩個線段相加的總長度的定理
#54579: Re: 極度繁雜的垃圾程式


s313048@gm.hccvs.hc.edu.tw (資二2-11曾奕升)


import syㄋ
line = sys.stdin.read()
line = line.splitlines()
N = int(line.pop(0))
entire_line = []
for i in range(N):
    entire_line.append(line[i])
a_line = []


def super_line_dddd_d():
    global a_line
    p =[]
    for i in entire_line:
        k = i.split()
        for j in k:
            p.append(int(j))
        a_line.append(p)
        p = []
super_line_dddd_d()
b_line = 0
c_line = 0
d_line = 0
e = 0
g = 0
a_line.sort()
for i in a_line:
    if g != 0:
        if i[1] - d_line >= 0:
            if i[1] - i[0] + b_line <= i[1] - c_line:
                e += i[1] - i[0]
            else:
                e += i[1] - d_line
        else:
            continue
    else:
        e += i[1] - i[0]
    b_line = i[1] - i[0]
    c_line = i[0]
    d_line = i[1]
    g += 1
print(e)
這個程式主要依靠兩個不相連的線段,最後減最前會>兩個線段相加的總長度的定理