#35581: c++


shane950517@gmail.com (ㄟ不是)

學校 : 國立臺中高級工業職業學校
編號 : 166971
來源 : [60.249.14.165]
最後登入時間 :
2024-02-28 10:14:56
k731. 1. 路徑偵測 -- 2023年6月APCS | From: [122.118.21.99] | 發表日期 : 2023-06-07 17:42

#include <iostream> 
using namespace std;

int turn(int d, int pd)
{
 return (d - pd + 4) % 4;  //  因為方向只有4個,這樣寫值一定為正,比較好處理,return 值對應為轉之型態
}

int main() {
 ios_base::sync_with_stdio(0);
 cin.tie(0);
 int n, lt = 0, rt = 0, bt = 0, px,py /* 前x /, py / 前y*/, pd /*前一方向*/, x = 0, y = 0, d /*目前方向*/;
 cin >> n;
 for (int i = 1; i <= n; i++)
 {
  px = x, py = y, pd = d;
  cin >> x >> y;
  if (y - py > 0)
   d = 0;  // 向北
  else if (x - px > 0)
   d = 1;  // 向東
  else if (y - py < 0)
   d = 2;  // 向南
  else if (x - px < 0)
   d = 3;  // 向西

  if (i == 1) //略過 第1個座標
   continue;
  if (turn(d, pd) == 1)
   rt++;
  else if (turn(d, pd) == 2)
   bt++;
  else if (turn(d, pd) == 3)
   lt++;
 }
 cout << lt << " " << rt << " " << bt << "\n";
 return 0;
}

 
ZeroJudge Forum