UVa 10455 Homer Simpson(列挙)

1032 ワード

10455-Homer Simpson
Time limit:3.000 seconds 
http://uva.onlinejudge.org/index.php?option=com_オンラインjudge&Itemid=8&category=114&page=show_problem&problem=1406
このデータ量。列挙は一番早い方法です。
完全コード:
/*0.025s*/



#include<bits/stdc++.h>

using namespace std;



int main()

{

	int m, n, t, x, ans1, ans2, drink, i, k;

	while (~scanf("%d%d%d", &m, &n, &t))

	{

		if (m > n) swap(m, n);

		x = t / m, drink = -1u>>1;

		for (i = x; i >= 0 && drink; --i)///  

		{

			k = t - i * m;

			if (drink > k % n) drink = k % n, ans1 = i + k / n;///drinks as little beer as possible

			if (k % n == 0) ans2 = i + k / n;

		}

		if (drink) printf("%d %d
", ans1, drink); else printf("%d
", ans2); } return 0; }