Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <bits/stdc++.h>
- //#pragma GCC optimize("O3")
- //#pragma GCC optimize("unroll-loops")
- #define mp make_pair
- #define pb push_back
- #define eb emplace_back
- #define x first
- #define y second
- #define sz(x) (int)x.size()
- #define all(x) begin(x), end(x)
- #define rall(x) rbegin(x), rend(x)
- #define FOR(i,a,b) for (int i = (a); i < (b); i++)
- #define RFOR(i,b,a) for (int i = (b) - 1; i >= (a); i--)
- using namespace std;
- typedef unsigned long long ull;
- typedef long long ll;
- typedef long double ld;
- typedef pair<int, int> pi;
- typedef pair<ll, ll> pl;
- typedef pair<double, double> pd;
- typedef vector<int> veci;
- typedef vector<bool> vecb;
- typedef vector<vector<int>> vvi;
- typedef vector<vector<bool>> vvb;
- typedef vector<ll> vecl;
- const int INF_I = 1e9;
- const ll INF_LL = 1e18;
- const double eps = 1e-8;
- double len(pi a){
- return sqrt(a.x*a.x+a.y*a.y);
- }
- int main() {
- ios::sync_with_stdio(false);
- cin.tie(nullptr);
- cout.tie(nullptr);
- pi a, o, b, p;
- cin >> a.x >> a.y >> o.x >> o.y >> b.x >> b.y >> p.x >> p.y;
- pi oa = mp(a.x-o.x, a.y-o.y);
- pi ob = mp(b.x-o.x, b.y-o.y);
- pi op = mp(p.x-o.x, p.y-o.y);
- if (len(op) == 0){
- cout << "YES\n";
- return 0;
- }
- double aop = double(oa.x*op.x+oa.y*op.y) / len(oa) / len(op);
- double pob = double(op.x*ob.x+op.y*ob.y) / len(op) / len(ob);
- double aob = double(oa.x*ob.x + oa.y*ob.y) / len(oa) / len(ob);
- if (aop >= aob-eps && pob >= aob-eps)
- cout << "YES\n";
- else
- cout << "NO\n";
- return 0;
- }
Add Comment
Please, Sign In to add comment