1. 程式人生 > >Codeforces Round #509 (Div. 2)B題Buying a TV Set

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,所以取更小值)