Ваня имеет весы для взвешивания нагрузки и веса массы ш 0 , ш 1 , ш 2 , ..., ш 100 грамм , где W является некоторым целым числом не менее 2 (ровно один вес каждого номинала). Ваня спрашивает , может ли он вес элемента с массой т с помощью заданных весов, если гири можно поставить на обеих кастрюль весы. Формально говоря, ваша задача состоит в том, чтобы определить , можно ли поместить элемент массы т и некоторые веса на левой чаше весов, а некоторые веса на правую чашу весов так, чтобы кастрюли весов находились в равновесии ,
вход
Первая строка содержит два целых числа W , м ( 2 ≤ W ≤ 10 9 , 1 ≤ м ≤ 10 9 ) - число , определяющее массу весов и массу элемента.
ВыходПечать слово « YES» , если элемент может быть взвешена и « НЕТ» , если она не может.
Примеры3 7
ДА
100 99
ДА
100 50
НЕТ
Обратите внимание на первое испытание образца. Один поддон может иметь элемент массы 7 и вес массы 3, а второй поддон может иметь два веса масс 9 и 1, соответственно. Тогда 7 + 3 = 9 + 1.
Обратите внимание на второе испытание образца. Один поддон весов может иметь элемент массы 99 и вес массы 1, а второй поддон может иметь вес массы 100.
Обратите внимание на испытания третьего образца. Это невозможно измерить вес изделия способом, описанным во входных данных.
ID-OJ:
Codeforces-552C
автор:
Caution_X
дата подачи:
20,191,031
Тэги:
Аналоговое
описание моделирования:
Даны два числа т, ш, текущий баланс, и множество весов, массы, ш ^ 0, ш ^ 1, ш ^ 2, ш ^ 3 ...... ш ^ п.
И спрашивают , может ли объект через множество весов таким образом, что масса т из баланса баланса
основных шагов , чтобы решить эту проблему:
(. 1) преобразуются в число т-арной W, P [I] гекс ш хранится справа налево позиции г-го размер
(2) , если я удовлетворяет условию р [г] <= 1 , то она должна быть сбалансирована таким образом , что баланс (левый м, что соответствует правой веса ш арных ^ 1 я ш)
(. 3) к р [I]> 1 количество определяется , является ли преобразуется в р [I] <= 1 && р [г + 1] <= 1, такие , как п-ичных бит я является п-1, и + 1-бит 0 ,
то она может быть записана в виде р [ я] = - 1, р [ г + 1] = 1, не окончательно определена для всех р [I] <= 1 (р [я] Описание ш ^ I -1 тяжелые веса и массы тела м на ту же сторону)
Представляет предупреждение:
каждый вес только один раз
AC код:
# include <бит / STDC ++ ч.> с использованием пространства имен STD; INT р [ 105 ]; INT основных () { INT ш, м; CIN >> >> ш м; INT ID = 1 ; в то время как (м) { р [ID ++] = т% мас; м / = ш; } Если (идентификатор> 100 ) { соиЬ << " НЕТ " << епсИ; вернуться 0 ; } Для ( INT I =1 ; г <идентификатор; я ++ ) { если (р [я]> = ш) { р [я + 1 ] ++ ; р [я] - = ш; } Если (р [я] <= 1 ) продолжить ; остальное , если (р [я] == w- 1 ) { р [I] = 0 ; р [я + 1 ] ++ ; } Еще { соиЬ << " NO " << епсИ; вернуться 0; } } СоиЬ << " ДА " << епсИ; вернуться 0 ; }