Advertisement
GerONSo

Untitled

Nov 11th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. /*
  2.  
  3. ∧_∧
  4. ( ・ω・。)つ━☆・*。
  5. ⊂  ノ    ・゜
  6. しーJ   Accepted
  7.  
  8. */
  9.  
  10.  
  11.  
  12. // #pragma GCC optimize("O3")
  13. // #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  14.  
  15. #include <bits/stdc++.h>
  16. #include <ext/pb_ds/assoc_container.hpp>
  17. #include <ext/pb_ds/tree_policy.hpp>
  18.  
  19. #define ll long long
  20. #define all(x) begin(x), end(x)
  21. #define x first
  22. #define y second
  23. #define int long long
  24.  
  25. using namespace std;
  26. using namespace __gnu_pbds;
  27.  
  28. typedef long double ld;
  29. template<typename T>
  30. using kawaii_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
  31.  
  32. const ld PI = atan2(0, -1);
  33.  
  34. void seriy() {
  35. ios::sync_with_stdio(0);
  36. cin.tie(0);
  37. cout.tie(0);
  38. cout << fixed << setprecision(14);
  39. #ifdef _offline
  40. freopen("input.txt", "r", stdin);
  41. freopen("output.txt", "w", stdout);
  42. #endif
  43. }
  44.  
  45. const int MAXN = 1e6 + 10;
  46. const int MAXM = 600;
  47. const int INF = 1e9;
  48. const int BASE = 47;
  49. const int MOD = 43200;
  50. const int MAXLOG = 21;
  51.  
  52. struct pt {
  53. int x, y;
  54. };
  55.  
  56.  
  57. int vec(pt a, pt b) {
  58. return a.x * b.y - a.y * b.x;
  59. }
  60.  
  61. int scal(pt a, pt b) {
  62. return a.x * b.x + a.y * b.y;
  63. }
  64.  
  65. ld ang(pt a, pt b) {
  66. return abs(atan2(vec(a, b), scal(a, b)));
  67. }
  68.  
  69. pt norm(pt a, pt b) {
  70. return {a.x - b.x, a.y - b.y};
  71. }
  72.  
  73. ld len(pt a) {
  74. return sqrt(a.x * a.x + a.y * a.y);
  75. }
  76.  
  77. ld sq(pt a, pt b, pt c) {
  78. return abs(vec(norm(b, a), norm(c, a))) / 2.;
  79. }
  80.  
  81. istream& operator>>(istream& is, pt& p) {
  82. is >> p.x >> p.y;
  83. return is;
  84. }
  85.  
  86. ostream& operator<<(ostream& os, pt& p) {
  87. os << p.x << " " << p.y;
  88. return os;
  89. }
  90.  
  91. pt operator- (const pt& a, const pt& b) {
  92. return {a.x - b.x, a.y - b.y};
  93. }
  94.  
  95. bool operator== (const pt& a, const pt& b) {
  96. return a.x == b.x && a.y == b.y;
  97. }
  98.  
  99. pt operator+ (const pt& a, const pt& b) {
  100. return {a.x + b.x, a.y + b.y};
  101. }
  102.  
  103. pt operator* (const pt& a, const ld& b) {
  104. return {a.x * b, a.y * b};
  105. }
  106.  
  107. pt turn(pt v, ld sin, ld cos) {
  108. return {v.x * cos - v.y * sin, v.y * cos + v.x * sin};
  109. }
  110.  
  111. signed main() {
  112. seriy();
  113. pt p1, p2, p3;
  114. cin >> p1 >> p2 >> p3;
  115. if(p2 == p3) {
  116. return cout << "YES\n", 0;
  117. }
  118. if(vec(p3 - p2, p1 - p2) == 0 && scal(p3 - p2, p1 - p2) > 0) {
  119. cout << "YES\n";
  120. }
  121. else {
  122. cout << "NO\n";
  123. }
  124. return 0;
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement