CF 407A - Triangle

题目大意:给你一个直角三角形的两个legs(直角边)。问你是否能够找到一种 三个点都是整数的方案。

方案:设左高为i,底为t1,右高为j,底为t2。只要i,t1,j,t2都是正数并且i!=j(c不能平行于x轴)然后判断(-t1,i)*(t2,j)是否垂直,最后输出答案。


#include<stdio.h>

const int N=1001;
int f[N*N];
int main(){
	for(int i=1;i<N;i++)
		f[i*i]=i;
	int a,b,t1,t2;
	scanf("%d %d",&a,&b);

	for(int i=1;i<a;i++){
		for(int j=1;j<b;j++){
			t1=f[a*a-i*i];
			t2=f[b*b-j*j];
			if(t1==0||t2==0||i==j) continue;
			if(i*j==t1*t2){
				printf("YES\n0 0\n%d %d\n%d %d\n",-t1,i,t2,j);
				return 0;
			}
		}
	}
	printf("NO\n");
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值