-
Notifications
You must be signed in to change notification settings - Fork 0
/
problem102.C
86 lines (63 loc) · 2.21 KB
/
problem102.C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//===========================================
// problem102.C
//
// written by lina <lina.oahz@gmail.com>
// start: Tue Apr 23 13:38:33 SGT 2013
// end: Tue Apr 23 18:07:34 SGT 2013
//
// please refer to
// http://en.wikipedia.org/wiki/Triangle#Using_coordinates
//============================================
//============================================
// Inculde
//============================================
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <sstream>
#include <cmath>
using namespace std;
//============================================
// main code area
//============================================
float area(float x1, float y1, float x2, float y2, float x3, float y3){
return 0.5*abs(x1*y2 - x1*y3 + x2*y3 -x2*y1 + x3*y1 - x3*y2);
}
int main(){
int count = 0;
ifstream myfile ("triangles.txt");
string line;
vector< vector<float> > coordinates;
if( myfile.is_open() ){
while( myfile.good() ){
getline(myfile, line);
istringstream split(line);
vector<float> coordinate;
for(string each; getline(split, each, ',');){
stringstream ss1;
ss1 << each;
float temp;
ss1 >> temp;
coordinate.push_back(temp);
};
coordinates.push_back(coordinate);
}
}
/*
for(unsigned int i=0; i<coordinates.size(); i++){
for(unsigned int j=0; j<coordinates[i].size(); j++)
cout << coordinates[i][j] << " ";
cout << endl;
}
*/
for(unsigned int i=0; i<coordinates.size()-1; i++){
if( area(coordinates[i][0], coordinates[i][1], coordinates[i][2], coordinates[i][3], 0, 0) + \
area(coordinates[i][2],coordinates[i][3],coordinates[i][4],coordinates[i][5],0,0) + \
area(coordinates[i][0],coordinates[i][1],coordinates[i][4],coordinates[i][5],0,0) == \
area(coordinates[i][0],coordinates[i][1],coordinates[i][2],coordinates[i][3],coordinates[i][4],coordinates[i][5]) )
count++;
}
cout << count << endl;
return 0;
}