import math as m n=int(input()) cor=[list(map(int,input().split()))for _ in range(n)] ans=0 leftmax,rightmax,upmax,downmax=0,0,0,0 for i in range(len(cor)): if cor[i][0]<leftmax: leftmax=cor[i][0] if cor[i][0]>rightmax: rightmax=cor[i][0] #########确定四个最端点########## for i in range(leftmax,rightmax): for j in range(len(cor)-1): d=[] p=[] if i in range(cor[j][0],cor[j+1][0]): y1=(i-cor[j][0])/(cor[j+1][0]-cor[j][0])*(cor[j+1][1]-cor[j][1])+cor[j][1] y2=(i-cor[j][0])/(cor[j+1][0]-cor[j][0])*(cor[j+1][1]-cor[j][1])+cor[j][1] d.append((y1,y2)) d.sort(key=lambda x:x[1]+x[0]) for k in range(len(d)): if k%2==0: p.append(int(min(d[k][0],d[k][1]))) if k % 2 == 1: p.append(m.ceil(max(d[k][0],d[k][1]))) cnt=0 for i in range(len(p)): if i%2==0: cnt+=p[i] else: if p[i]>=p[i-1]: cnt-=p[i-1] else:cnt-=p[i] ans+=cnt print(ans)
广场舞python代码
最新推荐文章于 2024-05-14 15:13:02 发布