solution:
#include <bits/stdc++.h>
using namespace std;
struct point{
double x, y;
point operator - (point a)
{
return point{x - a.x, y - a.y};
}
double operator * (point a)
{
return x * a.y - y * a.x;
}
};
struct line{
point s, t;
}L[105];
bool check(line a, line b)
{
point A = a.s, B = a.t, C = b.s, D = b.t;
if (((C - A) * (B - A)) * ((D - A) * (B - A)) > 0.000001)return false;
if (((A - C) * (D - C)) * ((B - C) * (D - C)) > 0.000001)return false;
return true;
}
int main()
{
int n;
while (cin >> n && n){
for (int i = 0; i < n; ++i){
cin >> L[i].s.x >> L[i].s.y >> L[i].t.x >> L[i].t.y;
}
int res = 0;
for (int i = 0; i < n; ++i){
for (int j = i + 1; j < n; ++j){
res += check(L[i], L[j]);
}
}
cout << res << endl;
}
return 0;
}