且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

hdu 2108 Shape of HDU

更新时间:2022-08-13 08:53:13

提示叉积:
代码如下:

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

struct point
{
    int x;
    int y;
}a[50];
int fun(int i,int j,int k) //叉积
{
   return (a[j].x-a[i].x)*(a[k].y-a[j].y)-(a[k].x-a[j].x)*(a[j].y-a[i].y);
}
int main()
{
    int n;
    bool flag;
    while(cin>>n,n)
    {
        for(int i=0; i<n; i++)
          cin>>a[i].x>>a[i].y;
        for(int i=n; i<n+2; i++)
            a[i].x=a[i-n].x,a[i].y=a[i-n].y;
        for(int i=0; i<n; i++)
        {
            flag=0;
            if(fun(i,i+1,i+2)<0)
            {
                flag=1;
                break;
            }
        }
        if(!flag)
            puts("convex");
        else
            puts("concave");
    }
    return 0;
}