#38312: c/c++(2ms, 96KB)兩個語法只差在標頭檔


bobobo0413 (Andy)

學校 : 國立臺灣大學
編號 : 252359
來源 : [220.141.219.171]
最後登入時間 :
2024-11-21 23:06:25
k731. 1. 路徑偵測 -- 2023年6月APCS | From: [223.140.85.242] | 發表日期 : 2023-11-11 20:08

(2ms, 96KB)c++標頭檔:#include<cstdio>#include<cstdlib>using namespace std;c標頭檔:改成#include<stdio.h>#include<stdlib.h>即可。這題可練習呼叫自訂函式讓原始碼看起來整齊,細節方面,要注意方向,大致上這題就能解好。

#include<cstdio>
#include<cstdlib>
using namespace std;
int d=0,l=0,r=0,re=0;
void d0(int px,int py,int x,int y);
void d1(int px,int py,int x,int y);
void d2(int px,int py,int x,int y);
void d3(int px,int py,int x,int y);
int main()
{
    int n;
    scanf("%d",&n);
    int px,py,x,y,i;
    scanf("%d%d",&px,&py);
    for(i=1;i<n;i++)
    {
        scanf("%d%d",&x,&y);
if(d==0)
  d0(px,py,x,y);
else if(d==1)
  d1(px,py,x,y);
  else if(d==2)
d2(px,py,x,y);
  else
    d3(px,py,x,y);
     px=x;
     py=y;
    }
printf("%d %d %d\n",l,r,re);
return 0;
}
void d0(int px,int py,int x,int y)
{
    if(x<px)
    {
       re++;
       d=2;
    }

    else if(y>py)
    {
          l++;
          d=1;
    }

        else if(y<py)
        {
          r++;
          d=3;
        }
}
void d1(int px,int py,int x,int y)
{
    if(y<py)
    {
       re++;
       d=3;
    }

    else if(x>px)
    {
          r++;
          d=0;
    }

        else if(x<px)
        {
          l++;
          d=2;
        }
}
void d2(int px,int py,int x,int y)
{
    if(x>px)
    {
       re++;
       d=0;
    }

    else if(y>py)
    {
          r++;
          d=1;
    }

        else if(y<py)
        {
          l++;
          d=3;
        }
}
void d3(int px,int py,int x,int y)
{
    if(y>py)
    {
       re++;
       d=1;
    }

    else if(x>px)
    {
          l++;
          d=0;
    }

        else if(x<px)
        {
          r++;
          d=2;
        }
}

 
ZeroJudge Forum