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;}