Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ∧_∧
- ( ・ω・。)つ━☆・*。
- ⊂ ノ ・゜
- しーJ Accepted
- */
- // #pragma GCC optimize("O3")
- // #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
- #include <bits/stdc++.h>
- #include <ext/pb_ds/assoc_container.hpp>
- #include <ext/pb_ds/tree_policy.hpp>
- #define ll long long
- #define all(x) begin(x), end(x)
- #define x first
- #define y second
- #define int long long
- using namespace std;
- using namespace __gnu_pbds;
- typedef long double ld;
- template<typename T>
- using kawaii_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
- const ld PI = atan2(0, -1);
- void seriy() {
- ios::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- cout << fixed << setprecision(14);
- #ifdef _offline
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- }
- const int MAXN = 1e6 + 10;
- const int MAXM = 600;
- const int INF = 1e9;
- const int BASE = 47;
- const int MOD = 43200;
- const int MAXLOG = 21;
- struct pt {
- int x, y;
- };
- int vec(pt a, pt b) {
- return a.x * b.y - a.y * b.x;
- }
- int scal(pt a, pt b) {
- return a.x * b.x + a.y * b.y;
- }
- ld ang(pt a, pt b) {
- return abs(atan2(vec(a, b), scal(a, b)));
- }
- pt norm(pt a, pt b) {
- return {a.x - b.x, a.y - b.y};
- }
- ld len(pt a) {
- return sqrt(a.x * a.x + a.y * a.y);
- }
- ld sq(pt a, pt b, pt c) {
- return abs(vec(norm(b, a), norm(c, a))) / 2.;
- }
- istream& operator>>(istream& is, pt& p) {
- is >> p.x >> p.y;
- return is;
- }
- ostream& operator<<(ostream& os, pt& p) {
- os << p.x << " " << p.y;
- return os;
- }
- pt operator- (const pt& a, const pt& b) {
- return {a.x - b.x, a.y - b.y};
- }
- bool operator== (const pt& a, const pt& b) {
- return a.x == b.x && a.y == b.y;
- }
- pt operator+ (const pt& a, const pt& b) {
- return {a.x + b.x, a.y + b.y};
- }
- pt operator* (const pt& a, const ld& b) {
- return {a.x * b, a.y * b};
- }
- pt turn(pt v, ld sin, ld cos) {
- return {v.x * cos - v.y * sin, v.y * cos + v.x * sin};
- }
- signed main() {
- seriy();
- pt p1, p2, p3;
- cin >> p1 >> p2 >> p3;
- if(p2 == p3) {
- return cout << "YES\n", 0;
- }
- if(vec(p3 - p2, p1 - p2) == 0 && scal(p3 - p2, p1 - p2) > 0) {
- cout << "YES\n";
- }
- else {
- cout << "NO\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement