Codeforces Round #509 (Div. 2)B题Buying a TV Set

​
#include<bits/stdc++.h>
using namespace std;
int main() {
	long long a, b, x, y, g;
	cin >> a >> b >> x >> y;
	g = __gcd(x, y);
	x /= g;
	y /= g;
	cout << min(a / x, b / y);
}

​

本题目的意思是商店中有任意高和宽的电视屏幕,在w<=a,h<=b的条件下求有多少块屏幕w/h符合特定的比例x/y。

先求出最小公约数g,再利用此最小公约数将x/y化成最简比例,这个比例本身代表了符合要求的最小屏幕,然后看a,b范围内有之快最小屏幕的整数倍屏幕共几块,a/x,b/y中比较小的那一个即为题解(屏幕必须既符合w<=a,又符合h<=b,所以取更小值)

猜你喜欢

转载自blog.csdn.net/huaiyingdetective/article/details/82746881