题目大意:
\(A\),\(B\) 在一条直线上。\(B\),\(C\) 在一条直线上你从 \(A\) 走到了 \(B\) 去 \(C\),问现在应该是直走、左转、还是右转。
思路:
分类讨论:分别求 \(A\) 到 \(B\),\(B\) 到 \(C\) 是什么方向,然后可得 \(A\) 到 \(C\) 的方向。
Code:
#include <bits/stdc++.h>
using namespace std;
#define int long long
int check(int x1, int y1, int x2, int y2)
{
if (x1 == x2 && y1 <= y2)
return 0;
else if (x1 == x2 && y1 >= y2)
return 1;
else if (x1 >= x2 && y1 == y2)
return 2;
else if (x1 <= x2 && y1 == y2)
return 3;
else if (x1 >= x2 && y1 <= y2)
return 4;
else if (x1 <= x2 && y1 >= y2)
return 5;
else if (x1 >= x2 && y1 >= y2)
return 6;
else
return 7;
}
int xa, ya, xb, yb, xc, yc;
string st[8][8] = {"TOWARDS", "", "LEFT", "RIGHT", "", "", "", "",
"", "TOWARDS", "RIGHT", "LEFT", "", "", "", "",
"RIGHT", "LEFT", "TOWARDS", "", "", "", "", "",
"LEFT", "RIGHT", "", "TOWARDS"};
signed main()
{
ios::sync_with_stdio(false);
cin >> xa >> ya;
cin >> xb >> yb;
cin >> xc >> yc;
int p1 = check(xa, ya, xb, yb);// A 到 B 的方向
int p2 = check(xb, yb, xc, yc);// B 到 C 的方向
cout << st[p1 % 4][p2 % 4];
return 0;
}
标签:x1,return,int,题解,x2,CF227A,y1,y2,Where
From: https://www.cnblogs.com/sky-lisu/p/17806082.html