Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <string>
- #include <map>
- #include <fstream>
- using namespace std;
- #define sqr(x) (x)*(x)
- struct point{
- long long x,y;
- };
- point a,c,b,d,e,f,g,h;
- double dist(point k,point m){
- return sqrt((k.x-m.x)*(k.x-m.x)+(k.y-m.y)*(k.y-m.y)+0.0);
- }
- double geron(point k,point l,point m){
- double tra,trb,trc;
- tra=dist(k,l);
- trb=dist(k,m);
- trc=dist(l,m);
- //cout << tra << " " << trb << " " << trc << endl;
- double p=(tra+trb+trc)/2.0;
- return sqrt(p*(p-tra)*(p-trb)*(p-trc));
- }
- bool istr(point n){
- double p=geron(a,b,n)+geron(b,c,n)+geron(c,d,n)+geron(a,d,n);
- //cout << p << endl;
- if(p==(dist(a,b)*dist(b,c)))
- return true;
- else
- return false;
- }
- bool istr1(point n){
- double p=geron(e,f,n)+geron(f,g,n)+geron(g,h,n)+geron(e,h,n);
- if(p==(dist(e,f)*dist(f,g)))
- return true;
- else
- return false;
- }
- int main(){
- freopen("input.txt","r",stdin);
- point e,f,g,h;
- scanf("%lld %lld %lld %lld %lld %lld %lld %lld",&a.x,&a.y,&c.x,&c.y,&e.x,&e.y,&g.x,&g.y);
- b.x=a.x; b.y=c.y;
- b.x=c.x; b.y=a.y;
- f.x=e.x; f.y=g.y;
- h.x=g.x; h.y=e.y;
- if(istr(e) || istr(f) || istr(g) || istr(h) || istr1(a) || istr1(b) || istr1(c) || istr1(d))
- printf("YES\n");
- else
- printf("NO\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement