[백준 13557번] 수열과 쿼리 10 (Python)
import sys input = sys.stdin.readline def make(s,e,x): if s==e: seg[0][x]=seg[1][x]=prefix[s] seg[2][x]=data[s-1] return mid = (s+e)//2 make(s,mid,x*2); make(mid+1,e,x*2+1) seg[0][x] = min(seg[0][x*2],seg[0][x*2+1]) seg[1][x] = max(seg[1][x*2],seg[1][x*2+1]) seg[2][x] = max(seg[2][x*2],seg[2][x*2+1],seg[1][x*2+1]-seg[0][x*2]) def minmax(i,j,s,e,x,m): if i==s and j==e: return seg[m][x] mid = (s+e..
[백준 2519번] 막대기 (Python)
import sys sys.setrecursionlimit(10**4) input = lambda : [*map(int,sys.stdin.readline().split())] def ccw(x1,y1,x2,y2,x,y): return (x2-x1)*(y-y1)-(y2-y1)*(x-x1) def crossed(x1,y1,x2,y2,x3,y3,x4,y4): return ccw(x1,y1,x2,y2,x3,y3)*ccw(x1,y1,x2,y2,x4,y4)