POJ_1809_Regetni

来源:互联网 发布:阿里云手机备份 编辑:程序博客网 时间:2024/06/07 01:11


#include <iostream>#include <cmath>using namespace std;struct Node{        Node():x( 0 ), y( 0 ){};        int x;    int y;    };double area( Node a, Node b, Node c ){    return fabs( a.x * b.y - a.y * b.x + b.x * c.y - b.y * c.x + c.x * a.y - c.y * a.x ) / 2;}int getTotal( const Node* temp, const int& num ){        int count = 0;        for( int i = 1; i <= ( num - 3 + 1 ); ++i ){        for( int j = i + 1; j <= ( num - 3 + 2 ); ++j ){            for( int k = j + 1; k <= num; ++k ){                                    double t = area( temp[i], temp[j], temp[k] );                int t1 = ( int )t;                                if( t - t1 == 0 )                    count++;            }        }    }        return count;    }int main(){        int n;    int num;    int _x, _y;        cin >> n;        for( int i = 1; i <= n; ++i ){                    cin >> num;                Node* temp = new Node[num + 1];                for( int j = 1; j <= num; ++j ){                    cin >> _x >> _y;                        temp[j].x = _x;            temp[j].y = _y;                    }                int t = getTotal( temp, num );                cout << "Scenario #" << i << ":" << endl;        cout << t << endl;                delete temp;        temp = NULL;            }        return 0;}