学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!
附上汇总贴:小猴编程C++ | 汇总-CSDN博客
【题目描述】
Farmer John 想要给他的奶牛们建造一个三角形牧场。
有 N 个栅栏柱子分别位于农场的二维平面上不同的点 ( X 1 , Y 1 ) … ( X N , Y N ) (X_1,Y_1)\dots(X_N,Y_N) (X1,Y1)…(XN,YN)。
他可以选择其中三个点组成三角形牧场,只要三角形有一条边与 x 轴平行,且有另一条边与 y 轴平行。
FJ 可以组成的合法三角形的最大面积多少 ?保证存在至少一个合法的三角形牧场。
【输入】
第一行包含 N。
以下 N 行每行包含两个整数 X i X_i Xi 和 Y i Y_i Yi,均在范围 − 1 0 4 … 1 0 4 -10^4\dots 10^4 −104…104 之内,描述一个栅栏柱子的位置。
【输出】
由于面积不一定为整数,输出栅栏柱子可以围成的合法三角形的最大面积的两倍。
【输入样例】
4
0 0
0 1
1 0
1 2
【输出样例】
2
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int x[105], y[105];
int main()
{
int n;
cin >> n;
for (int i=1; i<=n; i++)
cin >> x[i] >> y[i];
int ans = 0;
for (int i=1; i<=n; i++) //A
for (int j=1; j<=n; j++) //B
for (int k=1; k<=n; k++) //C
if (x[i]==x[k] && y[j]==y[i])
ans = max(ans, abs(y[i]-y[k])*abs(x[i]-x[j]));
cout << ans;
return 0;
}
【运行结果】
4
0 0
0 1
1 0
1 2
2