题解:CF2284A1 15K4JR3B (Easy Version)
题目传送机
思路
经过思考,不难发现,我们可以先固定一点,其余两点,一点向上移动,另一点向右移动,使三点构成直角三角形。
因为直角三角形所需的移动次数是最少的,且在相同的移动次数中,直角三角形的面积最大。
接下来我们就要考虑如何使这个直角三角形的面积最大了。
由于我们最终要求的是这个直角三角形面积的两倍,所以我们可以将直角三角形的两倍看作一个矩形,即我们最终要求的是这个矩形的最大面积。
要使矩形的面积最大,只需让这个矩形的长和宽尽量接近即可。
所以我们只需使这个矩形的一边为总移动次数的一半,另一边为剩余的移动次数即可。
代码就比较简单了,按照上文所说的进行计算即可。
代码
#include<bits/stdc++.h>
using namespace std;
long long a,b,c,d,e,w;
int main(){
cin>>w;
while(w--){
cin>>a;
b=a/2;
c=a-b;
cout<<b*c<<"\n";
}
return 0;
}