-
Notifications
You must be signed in to change notification settings - Fork 0
/
1e-profitable-startup.js
59 lines (40 loc) · 3.17 KB
/
1e-profitable-startup.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
E. Прибыльный стартап
Ограничение времени 1 секунда (фактическое использование на тестах – до 72ms)
Ограничение памяти 256Mb (фактическое использование на тестах – до 5.70Mb)
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
k друзей организовали стартап по производству укулеле для кошек. На сегодняшний день прибыль составила n рублей. Вы, как главный бухгалтер компании, хотите в каждый из ближайших d дней приписывать по одной цифре в конец числа, выражающего прибыль. При этом в каждый из дней прибыль должна делиться на k.
Формат ввода
В единственной строке входных данных через пробел записаны три числа: n, k, d — изначальная прибыль, количество учредителей компании и количество дней, которое вы собираетесь следить за прибылью (1 ≤ n, k ≤ 10^9, 1 ≤ d ≤ 10^5). НЕ гарантируется, что n делится на k.
Формат вывода
Выведите одно целое число x — прибыль компании через d дней. Первые цифры числа x должны совпадать с числом n. Все префиксы числа x, которые длиннее числа n на 1, 2, …, d цифр, должны делиться на k. Если возможных ответов несколько, выведите любой из них. Если ответа не существует, выведите −1.
Пример 1
Ввод
21 108 1
Вывод
216
Пример 2
Ввод
5 12 4
Вывод
-1
Примечания
В первом тестовом примере всего один день нужно следить за прибылью. Можно дописать цифру 6 в конец числа 21 и получить прибыль, делящуюся на 108.
Во втором тестовом примере мы в первый же день не можем получить прибыль, делящуюся на k, какая бы цифра не была дописана у числу n, поэтому ответа не существует.
*/
const fs = require('fs');
const lines = fs.readFileSync('input.txt', 'utf8').toString().trim().split('\n');
const [initialProfit, foundersCount, daysCount] = lines[0].trim().split(' ').map((value) => BigInt(value));
let result = -1n;
for (let j = 0n; j <= 9n; ++j) {
const currentProfit = initialProfit * 10n + j;
if (currentProfit % foundersCount === 0n) {
result = currentProfit;
break;
}
}
if (result !== -1n && daysCount > 1n) {
result *= 10n ** (daysCount - 1n);
}
fs.writeFileSync('output.txt', `${result}`);