• LQDOJ
  • Trang chủ
  • Giới thiệu Trạng thái Đề xuất ý tưởng Đề xuất bài tập Đề xuất kỳ thi Công cụ Báo cáo tiêu cực Báo cáo lỗi Thư viện

Tiếng Việt

Tiếng Việt
English

Đăng nhập

Đăng ký

Congdat1234

  • Giới thiệu
  • Bài tập
  • Bài nộp
-
Rating
1
Bài đã giải
1605
Tổng điểm
-
Hạng Rating
36606
Hạng điểm
0
Đóng góp

include<stdio.h>

include<math.h>

define D double

define L long long

int g(D px,D py,D qx,D qy,D a,D b,Dl,Dh){
D mn=py<qy?py:qy,mx=py>qy?py:qy,ya,yb,t1,t2,x1,x2;
if(mx<=a||mn>=b)return 0;
ya=a>mn?a:mn;yb=b<mx?b:mx; if(ya>=yb)return 0;
if(py==qy){l=px<qx?px:qx;*h=px>qx?px:qx;}
else{t1=(ya-py)/(qy-py);t2=(yb-py)/(qy-py);
x1=px+t1
(qx-px);x2=px+t2*(qx-px);
*l=x1<x2?x1:x2;*h=x1>x2?x1:x2;}
return 1;}
int main(){
D ax,ay,bx,by,cx,cy,lo,hi,xl,xh;
scanf("%lf%lf%lf%lf%lf%lf",&ax,&ay,&bx,&by,&cx,&cy);
D mn=ay<by?ay:by;if(cy\<mn)mn=cy; D mx=ay>by?ay:by;if(cy>mx)mx=cy;
L j,t=0;
for(j=(L)floor(mn);j<(L)ceil(mx);j++){
D a=j,b=j+1;lo=1e18;hi=-1e18;
if(g(ax,ay,bx,by,a,b,&xl,&xh)){if(xl<lo)lo=xl;if(xh>hi)hi=xh;}
if(g(bx,by,cx,cy,a,b,&xl,&xh)){if(xl<lo)lo=xl;if(xh>hi)hi=xh;}
if(g(cx,cy,ax,ay,a,b,&xl,&xh)){if(xl<lo)lo=xl;if(xh>hi)hi=xh;}
if(hi>lo)t+=(L)ceil(hi)-(L)floor(lo);}
printf("%lld\n",t);}

«    »
Thứ 2
Thứ 3
Thứ 4
Thứ 5
Thứ 6
Thứ 7
CN
Ít
Nhiều

proudly powered by DMOJ| developed by LQDJudge team