# 平面切分 **问题描述** 平面上有 N条直线,其中第 i条直线是$ y = A_i*x + B_i$。 请计算这些直线将平面分成了几个部分。 **输入格式** 第一行包含一个整数N。 以下N行,每行包含两个整数 $A_i, B_i$。 **输出格式** 一个整数代表答案。 **样例输入** ``` 3 1 1 2 2 3 3 ``` **样例输出** ``` 6 ``` 以下程序实现了这一功能,请你补全空白处的内容: ```cpp #include using namespace std; long double s[1010][2]; long long ans; bool st[1010]; pair p; int main() { int n; cin >> n; for (int i = 0; i < n; i++) { cin >> s[i][0] >> s[i][1]; set> points; for (int j = 0; j < i; j++) { if (st[j]) continue; if (s[i][0] == s[j][0]) { if (s[i][1] == s[j][1]) { st[i] = true; break; } else continue; } __________________ p.second = s[i][0] * p.first + s[i][1]; points.insert(p); } if (!st[i]) ans += points.size() + 1; } cout << ans + 1; return 0; } ``` ## aop ### before ```cpp ``` ### after ```cpp ``` ## 答案 ```cpp p.first = (s[j][1] - s[i][1]) / (s[i][0] - s[j][0]); ``` ## 选项 ### A ```cpp p.first = (s[j][1] - s[i][1]) / (s[i][1] - s[j][1]); ``` ### B ```cpp p.first = (s[j][0] - s[i][0]) / (s[i][0] - s[j][0]); ``` ### C ```cpp p.first = (s[j][0] - s[i][0]) / (s[i][1] - s[j][1]); ```