제출 #484232

#제출 시각아이디문제언어결과실행 시간메모리
484232beaconmcPalembang Bridges (APIO15_bridge)Pypy 3
22 / 100
535 ms59400 KiB
import random
from statistics import *
from bisect import *
import math


sumz = 0
k,n = map(int, input().split())
bridges = []
cities = []
for i in range(n):
    a,b,c,d = input().split()
    b = int(b)
    d = int(d)
    if a!=c:
        bridges.append(b)
        bridges.append(d)
        cities.append([sorted([b, d]), abs(b-d)])
    else:
        sumz += abs(b-d)
    
if k==1:
    bridge = 0 if len(bridges)==0 else round(median(bridges))
else:
    sus = [round(i) for i in quantiles(bridges, n=4)]
    bridge = (sus[0], sus[2])


if k==1:
    for i in cities:
        if bridge<i[0][0]:
            sumz += (abs(i[0][0]-bridge))*2+1 + i[1]
        elif bridge>i[0][1]:
            sumz += (abs(i[0][1]-bridge))*2+1 + i[1]
        else:
            sumz += i[1]+1
else:
    for i in cities:
        if i[0][0]<bridge[0]<i[0][1] or i[0][0]<bridge[1]<i[0][1]:
            sumz += i[1]+1
        else:
            sumz += min((abs(i[0][0]-min(bridge)))*2+1 + i[1],(abs(i[0][1]-max(bridge)))*2+1 + i[1])
            
        
print(int(sumz))
    
        
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...