This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |