洛谷CF1337A Ichihime and Triangle 題解

description

  • 給定四個整數 a,b,c,da,b,c,d,你需要求出一組 axba\le x\le bbycb\le y\le cczdc\le z\le d,使得以 x,y,zx,y,z 爲三條邊的長度能夠組成一個三角形。如果有多種方案,輸出任意一種

  • 輸入包含多組數據,數據組數不超過 100010001abcd1091\le a\le b\le c\le d\le 10^9

  • translate by @ShineEternal

solution

這種構造類型的題目我們可以通過找特殊值來實現。

不難發現,a,b,c,da,b,c,d 單調遞增,所以 x,y,zx,y,z 也會單調遞增。這時只需要滿足 x+y>zx+y>z 就行了。

我們把 x,yx,y 取最大值:x=b,y=cx=b,y=czz 取最小值:z=cz=c。就是最有可能實現的方案。

這時我們發現 x+y>zx+y>z,說明一定能實現。所以直接輸出 b c c 即可。

code:

#include<cstdio>
using namespace std;
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int a,b,c,d;
		scanf("%d%d%d%d",&a,&b,&c,&d);
		printf("%d %d %d\n",b,c,c);
	}
	return 0;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章